Skip to content
This repository has been archived by the owner on Jun 9, 2022. It is now read-only.

Commit

Permalink
merged with master
Browse files Browse the repository at this point in the history
  • Loading branch information
ukoethe committed Sep 17, 2013
2 parents 8fd9e02 + fbcfc75 commit 18c07f5
Show file tree
Hide file tree
Showing 12 changed files with 62 additions and 142 deletions.
5 changes: 4 additions & 1 deletion BuildSupport.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,12 @@ if (NOT BUILDEM_ENV_STRING)


if (NOT BUILDEM_DIR)
message (FATAL_ERROR "ERROR: FlyEM build directory (for all downloads & builds) should be specified via -DBUILDEM_DIR=<path> on cmake command line.")
message (FATAL_ERROR "ERROR: BuildEM build directory (for all downloads & builds) should be specified via -DBUILDEM_DIR=<path> on cmake command line.")
endif ()

if (NOT BUILDEM_REPO_DIR)
message (FATAL_ERROR "ERROR: BUILDEM_REPO_DIR must be specified via your application's CMakeLists.txt file, and must be set to ${BUILDEM_DIR}/src/buildem.")
endif ()

# Make sure the main directories for FlyEM build directory are already
# created so paths won't error out.
Expand Down
88 changes: 0 additions & 88 deletions CMakeLists.txt

This file was deleted.

12 changes: 12 additions & 0 deletions ExternalSource.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -99,14 +99,26 @@ macro (external_source ABBREV SRC_VERSION FILENAME MD5)
endmacro (external_source)

# Define macro to set a number of variables per external git repo
# Note: Besides these named args, this macro accepts the following optional args:
# OVERRIDE_NAME - Used to override the <package>_NAME and <package>_SRC_DIR variables set by this macro
macro (external_git_repo ABBREV SRC_VERSION URL)
# Check for extra (optional) macro args.
set (extra_macro_args ${ARGN})
list(LENGTH extra_macro_args num_extra_args)

# RELEASE builds are by default
if (NOT ${ABBREV}_BUILD)
set (${ABBREV}_BUILD "RELEASE")
endif ()

# By default, package NAME and SRC_DIR are <package>-git
set (external_source_name ${ABBREV}-git)

# First optional macro arg overrides package NAME and SRC_DIR
if (${num_extra_args} GREATER 0)
list(GET extra_macro_args 0 external_source_name)
endif ()

message ("Setting external_git_repo: ${external_source_name}")

# Append this external source name to our list of dependencies
Expand Down
1 change: 0 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ Buildem is predicated on some basic assertions:
* Developer attention should be minimized since developer time is very expensive compared to freely available computer time.
* Disk space is cheap and plentiful.
* Each application build process should be easily specified and automated.
* Required components should be easily shared on network drives among networked computers that can share software, i.e., the computers have compatible operating systems, because intranets have excellent bandwidth.
* Required components can be automatically built from source, and CMake is a sufficiently flexible and cross-platform tool on which to base our system.
* Builds of all components should be specific to OS, compiler, and compiler version to minimize conflicts in [ABI](http://en.wikipedia.org/wiki/Application_binary_interface), and we are not sure that pre-compiled components (e.g., RPMs) are available for all target machines/compilers.
* Third-party pre-built packages, like Enthought Python Distribution, are not viable due to licensing costs for cluster operation as well as inability to easily adapt to new dependencies.
Expand Down
6 changes: 3 additions & 3 deletions golang.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ include (ExternalSource)
include (BuildSupport)

external_source (golang
1.1
go1.1.src.tar.gz
4933f6a2f3ec1ffb01b42fd88de03851
1.1.2
go1.1.2.src.tar.gz
705feb2246c8ddaf820d7e171f1430c5
http://go.googlecode.com/files)

message ("Installing ${golang_NAME} into build area: ${BUILDEM_DIR} ...")
Expand Down
9 changes: 5 additions & 4 deletions ilastik-gui.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,12 @@ configure_file(${TEMPLATE_DIR}/ilastik_script.template ${BUILDEM_DIR}/bin/ilasti
set(LAUNCH_ILASTIK ilastik/tests/test_applets/pixelClassification/testPixelClassificationGui.py)
configure_file(${TEMPLATE_DIR}/ilastik_script.template ${BUILDEM_DIR}/bin/ilastik_gui_test @ONLY)

# Run the gui test script
ExternalProject_add_step(${ilastik_NAME} test_ilastik_gui
DEPENDEES install_gui_test
# Run the gui test script after the ilastik-gui target is built
add_custom_command (
TARGET ${ilastik-gui_NAME}
POST_BUILD
COMMAND ${BUILDEM_ENV_STRING} ${BUILDEM_DIR}/bin/ilastik_gui_test
COMMENT "Ran ilastik gui test"
COMMENT "Running ilastik gui test"
)

endif (NOT ilastik-gui_NAME)
Expand Down
5 changes: 2 additions & 3 deletions ilastik.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,8 @@ SET(ILASTIK_VERSION ${ILASTIK_VERSION}

external_git_repo (ilastik
${ILASTIK_VERSION}
http://github.com/janelia-flyem/flyem-ilastik)
set(ilastik_NAME ilastik)
set(ilastik_SRC_DIR "${BUILDEM_DIR}/src/${ilastik_NAME}")
http://github.com/janelia-flyem/flyem-ilastik
ilastik)
set(lazyflow_SRC_DIR "${ilastik_SRC_DIR}/lazyflow")

if("${ILASTIK_VERSION}" STREQUAL "master")
Expand Down
41 changes: 11 additions & 30 deletions lemon.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -11,33 +11,11 @@ include (ExternalSource)
include (BuildSupport)
include (PatchSupport)

## FIXME: v1.2.3 of lemon doesn't compile under clang.
## From their issue tracker (#449), it looks like the next release (v1.3) will fix this.
## For now, this means that we MUST use gcc for this package.
## As soon as v1.3 is ready, we should try to upgrade.
#
#set (CMAKE_C_COMPILER /usr/bin/gcc)
#set (CMAKE_CXX_COMPILER /usr/bin/g++)

# This is the snapshot of the lemon commit we are using, but we are using a
# github-hosted tarball to avoid requiring CMake-2.8.10
#
## CMake 2.8.10 is required because we want to use ExternalProject_Add with a hg repo.
#CMAKE_MINIMUM_REQUIRED(VERSION 2.8.10)
#
#message ("FIXME: Using a tag from the lemon mainline hg repo instead of a release.")
#message (" The tests in this version don't pass.")
#message (" As soon as lemon-1.3 is released, switch to it (and uncomment the test step)!")
#external_git_repo (lemon
# 473c71baff72
# http://lemon.cs.elte.hu/hg/lemon-main)

# Using special cached tarball. See note above.
external_source (lemon
1.2.3
lemon-1.2.3.tar.gz
750251a77be450ddddedab14e5163afb
http://lemon.cs.elte.hu/pub/sources)
1.2.4
lemon-1.2.4.tar.gz
fd89e8bf5035b02e2622a48ac7fe0641
http://lemon.cs.elte.hu/pub/sources)

message ("Installing ${lemon_NAME} into FlyEM build area: ${BUILDEM_DIR} ...")
ExternalProject_Add(${lemon_NAME}
Expand All @@ -46,7 +24,12 @@ ExternalProject_Add(${lemon_NAME}
URL_MD5 ${lemon_MD5}
UPDATE_COMMAND ""
PATCH_COMMAND ${BUILDEM_ENV_STRING} ${PATCH_EXE}
${lemon_SRC_DIR}/lemon/CMakeLists.txt ${PATCH_DIR}/lemon.patch
# This patch fixes a build error that clang detects.
# (Already fixed in lemon trunk, but not in the tarball release.)
${lemon_SRC_DIR}/lemon/graph_to_eps.h ${PATCH_DIR}/lemon.patch
# Apparently one test file is missing from the release.
# This patch removes it from CMakeLists.txt
${lemon_SRC_DIR}/test/CMakeLists.txt ${PATCH_DIR}/lemon-test.patch

CONFIGURE_COMMAND ${BUILDEM_ENV_STRING} ${CMAKE_COMMAND} ${lemon_SRC_DIR}
-DBUILD_SHARED_LIBS=ON
Expand All @@ -62,9 +45,7 @@ ExternalProject_Add(${lemon_NAME}

BUILD_COMMAND ${BUILDEM_ENV_STRING} make
INSTALL_COMMAND ${BUILDEM_ENV_STRING} make install

# Sadly, the tests do not pass in this version that we are pulling.
#TEST_COMMAND ${BUILDEM_ENV_STRING} make check
TEST_COMMAND ${BUILDEM_ENV_STRING} make check
)

set_target_properties(${lemon_NAME} PROPERTIES EXCLUDE_FROM_ALL ON)
Expand Down
11 changes: 11 additions & 0 deletions patches/lemon-test.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
--- test/CMakeLists.txt 2013-08-26 15:10:22.000000000 -0400
+++ test/CMakeLists.txt.patched 2013-08-26 15:10:15.000000000 -0400
@@ -13,7 +13,7 @@

SET(TESTS
adaptors_test
- arc_look_up_test
+ #arc_look_up_test
bellman_ford_test
bfs_test
circulation_test
18 changes: 9 additions & 9 deletions patches/lemon.patch
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
--- lemon/CMakeLists.txt 2013-02-20 15:19:54.068061699 -0500
+++ lemon/CMakeLists.txt.patched 2013-02-20 15:20:39.467490359 -0500
@@ -57,6 +57,7 @@
INSTALL(
TARGETS lemon
ARCHIVE DESTINATION lib
+ LIBRARY DESTINATION lib
COMPONENT library
)
--- lemon/graph_to_eps.h 2013-08-10 06:25:53.000000000 -0400
+++ lemon/graph_to_eps.h.patched 2013-08-26 15:01:35.000000000 -0400
@@ -222,7 +222,6 @@
using T::_title;
using T::_copyright;

- using T::NodeTextColorType;
using T::CUST_COL;
using T::DIST_COL;
using T::DIST_BW;
2 changes: 0 additions & 2 deletions vigra.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,6 @@ external_git_repo (vigra
${VIGRA_VERSION}
http://github.com/ukoethe/vigra)

#set(vigra_NAME vigra)

if("${VIGRA_VERSION}" STREQUAL "master")
set(VIGRA_UPDATE_COMMAND git checkout master && git pull)
else()
Expand Down
6 changes: 5 additions & 1 deletion vtk.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,11 @@ ExternalProject_Add(${vtk_NAME}
-DVTK_USE_TK=OFF
# NETCDF caused weird errors in vtk's xml
-DVTK_USE_SYSTEM_LIBXML2=ON
BUILD_COMMAND ${BUILDEM_ENV_STRING} make
# We want vtk to be built in parallel if possible.
# Therefore we use $(MAKE) instead of 'make', which somehow enables sub-make files to use the jobserver correctly.
# See: http://stackoverflow.com/questions/2942465/cmake-and-parallel-building-with-make-jn
# And: http://www.cmake.org/pipermail/cmake/2011-April/043720.html
BUILD_COMMAND ${BUILDEM_ENV_STRING} $(MAKE)
#TEST_COMMAND ${BUILDEM_ENV_STRING} make check
INSTALL_COMMAND ${BUILDEM_ENV_STRING} make install
)
Expand Down

0 comments on commit 18c07f5

Please sign in to comment.