From e4908e442908cb1ee48bf3fdd6ffbb87dc511d41 Mon Sep 17 00:00:00 2001 From: Carsten Haubold Date: Thu, 20 Feb 2014 18:05:29 +0100 Subject: [PATCH 01/62] Update FindCPLEX and cplex-shared to deal with the two different osx installers (yielding in x86_64_darwin or _osx paths), and to successfully link the shared libcplex against libstdc++ --- FindCplex.cmake | 4 ++++ cplex-shared.cmake | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/FindCplex.cmake b/FindCplex.cmake index 63488d1..efa8d0c 100644 --- a/FindCplex.cmake +++ b/FindCplex.cmake @@ -89,6 +89,7 @@ FIND_LIBRARY(CPLEX_LIBRARY ${CPLEX_ROOT_DIR}/cplex/lib/x86-64_debian4.0_4.1/static_pic #unix ${CPLEX_ROOT_DIR}/cplex/lib/x86-64_sles10_4.1/static_pic #unix ${CPLEX_ROOT_DIR}/cplex/lib/x86-64_osx/static_pic #osx + ${CPLEX_ROOT_DIR}/cplex/lib/x86-64_darwin/static_pic #osx PATHS ENV LIBRARY_PATH #unix ENV LD_LIBRARY_PATH #unix ) @@ -100,6 +101,7 @@ FIND_LIBRARY(CPLEX_ILOCPLEX_LIBRARY ${CPLEX_ROOT_DIR}/cplex/lib/x86-64_debian4.0_4.1/static_pic #unix ${CPLEX_ROOT_DIR}/cplex/lib/x86-64_sles10_4.1/static_pic #unix ${CPLEX_ROOT_DIR}/cplex/lib/x86-64_osx/static_pic #osx + ${CPLEX_ROOT_DIR}/cplex/lib/x86-64_darwin/static_pic #osx PATHS ENV LIBRARY_PATH ENV LD_LIBRARY_PATH ) @@ -111,6 +113,7 @@ FIND_LIBRARY(CPLEX_CONCERT_LIBRARY ${CPLEX_ROOT_DIR}/concert/lib/x86-64_debian4.0_4.1/static_pic #unix ${CPLEX_ROOT_DIR}/concert/lib/x86-64_sles10_4.1/static_pic #unix ${CPLEX_ROOT_DIR}/concert/lib/x86-64_osx/static_pic #osx + ${CPLEX_ROOT_DIR}/concert/lib/x86-64_darwin/static_pic #osx PATHS ENV LIBRARY_PATH ENV LD_LIBRARY_PATH ) @@ -127,6 +130,7 @@ else() HINTS ${CPLEX_ROOT_DIR}/cplex/bin/x86-64_sles10_4.1 #unix ${CPLEX_ROOT_DIR}/cplex/bin/x86-64_debian4.0_4.1 #unix ${CPLEX_ROOT_DIR}/cplex/bin/x86-64_osx #osx + ${CPLEX_ROOT_DIR}/cplex/bin/x86-64_darwin #osx ENV LIBRARY_PATH ENV LD_LIBRARY_PATH ) diff --git a/cplex-shared.cmake b/cplex-shared.cmake index c01c184..ad455a8 100644 --- a/cplex-shared.cmake +++ b/cplex-shared.cmake @@ -27,7 +27,7 @@ find_package( Cplex REQUIRED ) if (APPLE) set(SHARED_CPLEX_COMPILE_FLAGS "-fpic -stdlib=libstdc++") set(SHARED_CPLEX_LINK_FLAGS_1 "-Wl,-all_load") - set(SHARED_CPLEX_LINK_FLAGS_2 "") + set(SHARED_CPLEX_LINK_FLAGS_2 "-stdlib=libstdc++") else() set(SHARED_CPLEX_COMPILE_FLAGS "-shared -fpic") set(SHARED_CPLEX_LINK_FLAGS_1 "-Wl,-whole-archive") From aa36f56e872f80cb8098e4afb422a1c65933d00e Mon Sep 17 00:00:00 2001 From: Bill Katz Date: Mon, 10 Mar 2014 14:26:47 -0400 Subject: [PATCH 02/62] Add janelia logo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1705e61..7bd537d 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -The BuildEM System +The BuildEM System [![Picture](https://raw.github.com/janelia-flyem/janelia-flyem.github.com/master/images/jfrc_grey_180x40.png)](http://www.janelia.org) ================== The [buildem](https://github.com/janelia-flyem/buildem) repo is a modular CMake-based system that leverages [CMake's ExternalProject](http://www.kitware.com/media/html/BuildingExternalProjectsWithCMake2.8.html) to simplify and automate a complex build process. Its goal is to allow *simple*, *modular* specification of software dependencies and automate the download, patch, configure, build, and install process. Initially, we are focused on Linux (and occasionally MacOS X) support for the modules, but we hope to integrate patches from Windows users as needed. From 32f819e059b6a3d940cb75003a642016b62f30ac Mon Sep 17 00:00:00 2001 From: Stuart Berg Date: Thu, 13 Mar 2014 15:58:13 -0400 Subject: [PATCH 03/62] Removed obsolete patchfile: cylemon.patch --- patches/cylemon.patch | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100644 patches/cylemon.patch diff --git a/patches/cylemon.patch b/patches/cylemon.patch deleted file mode 100644 index e89d88c..0000000 --- a/patches/cylemon.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- setup.py 2013-02-20 14:41:10.879030739 -0500 -+++ setup.py.fixed 2013-02-20 15:05:47.803048274 -0500 -@@ -40,8 +40,7 @@ - sources=["cylemon/segmentation.pyx"], - libraries = ["stdc++", "emon", "gomp"], - language='C++', -- extra_compile_args=['-O3', '-fopenmp'], -- include_dirs = ['/usr/local/include', os.getenv("HOME")+"/inst/include"]) -+ extra_compile_args=['-O3', '-fopenmp']) - ] - ) - except Exception as e: From f93c6a450cf66100b6075a2ebc5961971f4c6877 Mon Sep 17 00:00:00 2001 From: Stuart Berg Date: Mon, 17 Mar 2014 18:06:47 -0400 Subject: [PATCH 04/62] ilastik.cmake: Changed remote url to ilastik/ilastik-meta, not janelia-flyem/ilastik --- ilastik.cmake | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/ilastik.cmake b/ilastik.cmake index 392c285..bb9fc1e 100644 --- a/ilastik.cmake +++ b/ilastik.cmake @@ -33,7 +33,7 @@ include (nose) include (faulthandler) # select the desired ilastik commit -set(DEFAULT_ILASTIK_VERSION "20131205") +set(DEFAULT_ILASTIK_VERSION "v1.0.2") IF(NOT DEFINED ILASTIK_VERSION) SET(ILASTIK_VERSION "${DEFAULT_ILASTIK_VERSION}") ENDIF() @@ -43,20 +43,27 @@ SET(ILASTIK_VERSION ${ILASTIK_VERSION} external_git_repo (ilastik ${ILASTIK_VERSION} - https://github.com/janelia-flyem/flyem-ilastik + https://github.com/ilastik/ilastik-meta ilastik) set(lazyflow_SRC_DIR "${ilastik_SRC_DIR}/lazyflow") if("${ILASTIK_VERSION}" STREQUAL "master") - set(ILASTIK_UPDATE_COMMAND git checkout master && git pull origin master && git submodule update --init --recursive && + # If the user's build is old, he might be linked to the janelia-flyem remote + # Force the remote to update from ilastik/ilastik-meta by removing origin and adding it again + set(ILASTIK_UPDATE_COMMAND git remote rm origin && git remote add origin https://github.com/ilastik/ilastik-meta && + git fetch origin && + git checkout master && git pull origin master && git submodule update --init --recursive && cd lazyflow && git checkout master && git pull origin master && git submodule update && cd .. && cd volumina && git checkout master && git pull origin master && cd .. && cd ilastik && git checkout master && git pull origin master && cd ..) else() - set(ILASTIK_UPDATE_COMMAND git fetch && git checkout ${ILASTIK_VERSION} && git submodule update --init --recursive) + # If the user's build is old, he might be linked to the janelia-flyem remote + # Force the remote to update from ilastik/ilastik-meta by removing origin and adding it again + set(ILASTIK_UPDATE_COMMAND git remote rm origin && git remote add origin https://github.com/ilastik/ilastik-meta && + git fetch origin && git checkout ${ILASTIK_VERSION} && git submodule update --init --recursive) endif() From c4d2d694a0940bf1d5a9ed4958cdca5705fa97a4 Mon Sep 17 00:00:00 2001 From: Stephen Plaza Date: Tue, 25 Mar 2014 16:40:41 -0400 Subject: [PATCH 05/62] adds drmaa python --- drmaa-python.cmake | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 drmaa-python.cmake diff --git a/drmaa-python.cmake b/drmaa-python.cmake new file mode 100644 index 0000000..fca6a43 --- /dev/null +++ b/drmaa-python.cmake @@ -0,0 +1,40 @@ +# +# Install drmaa-python library from source +# + +if (NOT drmaa-python_NAME) + +CMAKE_MINIMUM_REQUIRED(VERSION 2.8) + +include (ExternalProject) +include (ExternalSource) +include (BuildSupport) + +include (python) +include (setuptools) + +external_source (drmaa-python + 0.5 + drmaa-0.5.tar.gz + 04c7fa199a86ccf20d3b91c8705cb8be + http://drmaa-python.googlecode.com/files/ + ) + +message ("Installing ${drmaa-python_NAME} into FlyEM build area: ${BUILDEM_DIR} ...") +ExternalProject_Add(${drmaa-python_NAME} + DEPENDS ${python_NAME} ${setuptools_NAME} + PREFIX ${BUILDEM_DIR} + URL ${drmaa-python_URL} + URL_MD5 ${drmaa-python_MD5} + UPDATE_COMMAND "" + PATCH_COMMAND "" + CONFIGURE_COMMAND "" + BUILD_COMMAND ${BUILDEM_ENV_STRING} ${PYTHON_EXE} setup.py install + BUILD_IN_SOURCE 1 + TEST_COMMAND "" + INSTALL_COMMAND "" +) + +set_target_properties(${drmaa-python_NAME} PROPERTIES EXCLUDE_FROM_ALL ON) + +endif (NOT drmaa-python_NAME) From a641b2e0055373c1e96acd0ac62a1bf3ea79ec8d Mon Sep 17 00:00:00 2001 From: Stuart Berg Date: Mon, 31 Mar 2014 11:06:54 -0400 Subject: [PATCH 06/62] opengm.cmake: Compile with hdf5, boost, and python --- opengm.cmake | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/opengm.cmake b/opengm.cmake index d230daf..716445f 100644 --- a/opengm.cmake +++ b/opengm.cmake @@ -11,6 +11,10 @@ include (ExternalSource) include (BuildSupport) include (PatchSupport) +include (boost) +include (hdf5) +include (python) + external_git_repo (opengm 576dc472324a5dce40b7e9bb4c270afbd9b3da37 https://github.com/opengm/opengm) @@ -21,7 +25,7 @@ endif() message ("Installing ${opengm_NAME} into FlyEM build area: ${BUILDEM_DIR} ...") ExternalProject_Add(${opengm_NAME} - DEPENDS ${boost_NAME} + DEPENDS ${boost_NAME} ${hdf5_NAME} ${python_NAME} PREFIX ${BUILDEM_DIR} GIT_REPOSITORY ${opengm_URL} GIT_TAG ${opengm_TAG} @@ -33,6 +37,9 @@ ExternalProject_Add(${opengm_NAME} -DCMAKE_PREFIX_PATH=${BUILDEM_DIR} -DWITH_CPLEX=ON -DWITH_BOOST=ON + -DWITH_HDF5=ON + -DBUILD_PYTHON_WRAPPER=ON + -DWITH_OPENMP=OFF # Mac doesn't support OpenMP ${CMAKE_CPLEX_ROOT_DIR} BUILD_COMMAND ${BUILDEM_ENV_STRING} $(MAKE) From 30ee2fbaaa418e52c760b26bbbe66aa3b4a86e1f Mon Sep 17 00:00:00 2001 From: Stuart Berg Date: Mon, 31 Mar 2014 11:07:50 -0400 Subject: [PATCH 07/62] readme: Updated environment settings info for building on the janelia cluster. --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7bd537d..6245458 100644 --- a/README.md +++ b/README.md @@ -311,8 +311,8 @@ To build on the cluster, login to a compute node and set the environment variabl ```bash export FLYEMCLUSTER=/groups/flyem/proj/builds/cluster -export PATH=/usr/local/cmake-2.8.8/bin:/usr/local/git-1.8.1/bin:$FLYEMCLUSTER/bin:$PATH -export LD_LIBRARY_PATH=$FLYEMCLUSTER/lib:$LD_LIBRARY_PATH +export PATH=/usr/local/gcc/bin:/usr/local/cmake-2.8.8/bin:/usr/local/git-1.8.1/bin:$FLYEMCLUSTER/bin:$PATH +export LD_LIBRARY_PATH=/usr/local/gcc/lib64:$FLYEMCLUSTER/lib:$LD_LIBRARY_PATH export PYTHONPATH=$FLYEMCLUSTER/lib/python2.7:$FLYEMCLUSTER/lib/python2.7/site-packages:$FLYEMCLUSTER/lib ``` From b2bc57f0411b8ba81d170c04e1a7f19a132e5906 Mon Sep 17 00:00:00 2001 From: Bill Katz Date: Wed, 2 Apr 2014 14:35:19 -0400 Subject: [PATCH 08/62] Update go to 1.2.1 --- golang.cmake | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/golang.cmake b/golang.cmake index d994b6c..56fe42a 100644 --- a/golang.cmake +++ b/golang.cmake @@ -11,9 +11,9 @@ include (ExternalSource) include (BuildSupport) external_source (golang - 1.2 - go1.2.src.tar.gz - c2ace56f6b6413a5c6318b9527a8b763 + 1.2.1 + go1.2.1.src.tar.gz + 6232fa4417004fc9dde823ad1eaf597c http://go.googlecode.com/files) message ("Installing ${golang_NAME} into build area: ${BUILDEM_DIR} ...") From 73c22be215b67bd5709d4185f62b00a4bf2929e3 Mon Sep 17 00:00:00 2001 From: Stuart Berg Date: Fri, 4 Apr 2014 14:18:31 -0400 Subject: [PATCH 09/62] Added jsonschema.cmake --- jsonschema.cmake | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 jsonschema.cmake diff --git a/jsonschema.cmake b/jsonschema.cmake new file mode 100644 index 0000000..d2339b8 --- /dev/null +++ b/jsonschema.cmake @@ -0,0 +1,41 @@ +# +# Install jsonschema library from source +# + +if (NOT jsonschema_NAME) + +CMAKE_MINIMUM_REQUIRED(VERSION 2.8) + +include (ExternalProject) +include (ExternalSource) +include (BuildSupport) + +include (python) +include (setuptools) + +external_source (jsonschema + 2.3.0 + jsonschema-2.3.0.tar.gz + 410075e1969a9ec1838b5a6e1313c32b + https://pypi.python.org/packages/source/j/jsonschema) + +message ("Installing ${jsonschema_NAME} into ilastik build area: ${BUILDEM_DIR} ...") +ExternalProject_Add(${jsonschema_NAME} + DEPENDS ${python_NAME} ${setuptools_NAME} + PREFIX ${BUILDEM_DIR} + URL ${jsonschema_URL} + URL_MD5 ${jsonschema_MD5} + UPDATE_COMMAND "" + PATCH_COMMAND "" + CONFIGURE_COMMAND "" + BUILD_COMMAND ${BUILDEM_ENV_STRING} ${PYTHON_EXE} setup.py install + BUILD_IN_SOURCE 1 + TEST_COMMAND "" + INSTALL_COMMAND "" +) + +set_target_properties(${jsonschema_NAME} PROPERTIES EXCLUDE_FROM_ALL ON) + + +endif (NOT jsonschema_NAME) + From e22286e6214de8fe1a618eec82ce98b17233dff0 Mon Sep 17 00:00:00 2001 From: Stuart Berg Date: Fri, 4 Apr 2014 14:19:23 -0400 Subject: [PATCH 10/62] ilastik.cmake: Added a new dependency: jsonschema --- ilastik.cmake | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ilastik.cmake b/ilastik.cmake index bb9fc1e..09acec2 100644 --- a/ilastik.cmake +++ b/ilastik.cmake @@ -31,6 +31,7 @@ include (pgmlink) include (scikit-learn) include (nose) include (faulthandler) +include (jsonschema) # Required for the dvid extension. # select the desired ilastik commit set(DEFAULT_ILASTIK_VERSION "v1.0.2") @@ -71,7 +72,7 @@ message ("Installing ${ilastik_NAME}/${ILASTIK_VERSION} into FlyEM build area: $ set (ilastik_dependencies ${vigra_NAME} ${h5py_NAME} ${psutil_NAME} ${nose_NAME} ${blist_NAME} ${greenlet_NAME} ${yapsy_NAME} ${faulthandler_NAME} - ${cylemon_NAME} ${scikit-learn_NAME}) + ${cylemon_NAME} ${scikit-learn_NAME} ${jsonschema_NAME}) if (${build_pgmlink}) # Tracking depends on pgmlink, which depends on CPLEX. From d1d751d95398c98d60a31635e21d523b3bc6819e Mon Sep 17 00:00:00 2001 From: Stuart Berg Date: Tue, 8 Apr 2014 22:21:52 -0400 Subject: [PATCH 11/62] ilastik.cmake: Require opengm --- ilastik.cmake | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ilastik.cmake b/ilastik.cmake index 09acec2..90fc141 100644 --- a/ilastik.cmake +++ b/ilastik.cmake @@ -32,6 +32,7 @@ include (scikit-learn) include (nose) include (faulthandler) include (jsonschema) # Required for the dvid extension. +include (opengm) # select the desired ilastik commit set(DEFAULT_ILASTIK_VERSION "v1.0.2") @@ -71,8 +72,8 @@ endif() message ("Installing ${ilastik_NAME}/${ILASTIK_VERSION} into FlyEM build area: ${BUILDEM_DIR} ...") set (ilastik_dependencies ${vigra_NAME} ${h5py_NAME} ${psutil_NAME} ${nose_NAME} - ${blist_NAME} ${greenlet_NAME} ${yapsy_NAME} ${faulthandler_NAME} - ${cylemon_NAME} ${scikit-learn_NAME} ${jsonschema_NAME}) + ${blist_NAME} ${greenlet_NAME} ${yapsy_NAME} ${faulthandler_NAME} + ${cylemon_NAME} ${scikit-learn_NAME} ${jsonschema_NAME} ${opengm_NAME} ) if (${build_pgmlink}) # Tracking depends on pgmlink, which depends on CPLEX. From 4dfb3710db0b10ef8e28c983ccf20c7fe996d8ee Mon Sep 17 00:00:00 2001 From: Stuart Berg Date: Tue, 8 Apr 2014 23:07:12 -0400 Subject: [PATCH 12/62] opengm: Build without CPLEX if it can't be found. --- opengm.cmake | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/opengm.cmake b/opengm.cmake index 716445f..fa7c319 100644 --- a/opengm.cmake +++ b/opengm.cmake @@ -21,6 +21,9 @@ external_git_repo (opengm if(CPLEX_ROOT_DIR) set(CMAKE_CPLEX_ROOT_DIR "-DCPLEX_ROOT_DIR=${CPLEX_ROOT_DIR}") + set(WITH_CPLEX ON) +else() + set(WITH_CPLEX OFF) endif() message ("Installing ${opengm_NAME} into FlyEM build area: ${BUILDEM_DIR} ...") @@ -35,7 +38,7 @@ ExternalProject_Add(${opengm_NAME} CONFIGURE_COMMAND ${BUILDEM_ENV_STRING} ${CMAKE_COMMAND} ${opengm_SRC_DIR} -DCMAKE_INSTALL_PREFIX=${BUILDEM_DIR} -DCMAKE_PREFIX_PATH=${BUILDEM_DIR} - -DWITH_CPLEX=ON + -DWITH_CPLEX=${WITH_CPLEX} -DWITH_BOOST=ON -DWITH_HDF5=ON -DBUILD_PYTHON_WRAPPER=ON From d68f8056d140cbcb883ddacf4b286437ea4e052f Mon Sep 17 00:00:00 2001 From: Stephen Plaza Date: Wed, 16 Apr 2014 22:04:10 -0400 Subject: [PATCH 13/62] adds support for libdvidcpp --- boost1550.cmake | 64 ++++++++++++++++++++++++++++++++++++++++++++++++ cppnetlib.cmake | 43 ++++++++++++++++++++++++++++++++ libdvidcpp.cmake | 43 ++++++++++++++++++++++++++++++++ 3 files changed, 150 insertions(+) create mode 100644 boost1550.cmake create mode 100644 cppnetlib.cmake create mode 100644 libdvidcpp.cmake diff --git a/boost1550.cmake b/boost1550.cmake new file mode 100644 index 0000000..cfa2379 --- /dev/null +++ b/boost1550.cmake @@ -0,0 +1,64 @@ +# +# Install boost1550 libraries from source +# + +if (NOT boost1550_NAME) + +CMAKE_MINIMUM_REQUIRED(VERSION 2.8) + +include (ExternalProject) +include (BuildSupport) +include (ExternalSource) + +include (python) +include (zlib) + +set (boost_INCLUDE_DIR ${BUILDEM_INCLUDE_DIR}/boost) +include_directories (${boost_INCLUDE_DIR}) + +external_source (boost1550 + 1_55_0 + boost_1_55_0.tar.gz + 93780777cfbf999a600f62883bd54b17 + http://sourceforge.net/projects/boost/files/boost/1.55.0/) + +set (boost_LIBS ${BUILDEM_LIB_DIR}/libboost_thread.${BUILDEM_PLATFORM_DYLIB_EXTENSION} + ${BUILDEM_LIB_DIR}/libboost_system.${BUILDEM_PLATFORM_DYLIB_EXTENSION} + ${BUILDEM_LIB_DIR}/libboost_program_options.${BUILDEM_PLATFORM_DYLIB_EXTENSION} + ${BUILDEM_LIB_DIR}/libboost_python.${BUILDEM_PLATFORM_DYLIB_EXTENSION} + ${BUILDEM_LIB_DIR}/libboost_unit_test_framework.${BUILDEM_PLATFORM_DYLIB_EXTENSION} + ${BUILDEM_LIB_DIR}/libboost_filesystem.${BUILDEM_PLATFORM_DYLIB_EXTENSION} + ${BUILDEM_LIB_DIR}/libboost_chrono.${BUILDEM_PLATFORM_DYLIB_EXTENSION} ) + +# Add layout=tagged param to first boost1550 install to explicitly create -mt libraries +# some libraries require. TODO: Possibly shore up all library find paths to only +# allow use of built libs. +message ("Installing ${boost1550_NAME} into FlyEM build area: ${BUILDEM_DIR} ...") +ExternalProject_Add(${boost1550_NAME} + DEPENDS ${python_NAME} ${zlib_NAME} + PREFIX ${BUILDEM_DIR} + URL ${boost1550_URL} + URL_MD5 ${boost1550_MD5} + UPDATE_COMMAND "" + PATCH_COMMAND "" + CONFIGURE_COMMAND ${BUILDEM_ENV_STRING} ./bootstrap.sh + --with-libraries=date_time,filesystem,python,regex,serialization,system,test,thread,program_options,chrono + --with-python=${PYTHON_EXE} + --prefix=${BUILDEM_DIR} + LDFLAGS=${BUILDEM_LDFLAGS} + CPPFLAGS=-I${BUILDEM_DIR}/include + BUILD_COMMAND ${BUILDEM_ENV_STRING} ./b2 + --layout=tagged + -sNO_BZIP2=1 + -sZLIB_INCLUDE=${BUILDEM_DIR}/include + -sZLIB_SOURCE=${zlib_SRC_DIR} install + BUILD_IN_SOURCE 1 + INSTALL_COMMAND ${BUILDEM_ENV_STRING} ./b2 + -sNO_BZIP2=1 + -sZLIB_INCLUDE=${BUILDEM_DIR}/include + -sZLIB_SOURCE=${zlib_SRC_DIR} install +) + +set_target_properties(${boost1550_NAME} PROPERTIES EXCLUDE_FROM_ALL ON) + +endif (NOT boost1550_NAME) diff --git a/cppnetlib.cmake b/cppnetlib.cmake new file mode 100644 index 0000000..e007c4a --- /dev/null +++ b/cppnetlib.cmake @@ -0,0 +1,43 @@ +# +# Install cppnetlib library from source +# + +if (NOT cppnetlib_NAME) + +CMAKE_MINIMUM_REQUIRED(VERSION 2.8.6) + +include (ExternalProject) +include (ExternalSource) +include (BuildSupport) +include (PatchSupport) + +include (boost1550) + +external_source (cppnetlib + 0.11.0 + cpp-netlib-0.11.0.tar.gz + 6fba4f2f64f19af9f172fd60ad8e76ab + http://commondatastorage.googleapis.com/cpp-netlib-downloads/0.11.0/ + ) + +# set libs properly +set (CPPNETLIB_LIBRARIES ${BUILDEM_DIR}/lib64/libcppnetlib-client-connections.a ${BUILDEM_DIR}/lib64/libcppnetlib-server-parsers.a ${BUILDEM_DIR}/lib64/libcppnetlib-uri.a) + +message ("Installing ${cppnetlib_NAME} into FlyEM build area: ${BUILDEM_DIR} ...") +ExternalProject_Add(${cppnetlib_NAME} + DEPENDS ${boost1550_NAME} + PREFIX ${BUILDEM_DIR} + URL ${cppnetlib_URL} + URL_MD5 ${cppnetlib_MD5} + UPDATE_COMMAND "" + PATCH_COMMAND "" + CONFIGURE_COMMAND ${BUILDEM_ENV_STRING} ${CMAKE_COMMAND} ${cppnetlib_SRC_DIR} + -DCMAKE_INSTALL_PREFIX=${BUILDEM_DIR} + -DCMAKE_PREFIX_PATH=${BUILDEM_DIR} + BUILD_COMMAND ${BUILDEM_ENV_STRING} $(MAKE) + INSTALL_COMMAND ${BUILDEM_ENV_STRING} $(MAKE) install +) + +set_target_properties(${cppnetlib_NAME} PROPERTIES EXCLUDE_FROM_ALL ON) + +endif (NOT cppnetlib_NAME) diff --git a/libdvidcpp.cmake b/libdvidcpp.cmake new file mode 100644 index 0000000..074b32f --- /dev/null +++ b/libdvidcpp.cmake @@ -0,0 +1,43 @@ +# +# Install libdvidcpp library from source +# +if (NOT libdvidcpp_NAME) + +CMAKE_MINIMUM_REQUIRED(VERSION 2.8) + +include (ExternalProject) +include (ExternalSource) +include (BuildSupport) + +include (cppnetlib) + +external_git_repo (libdvidcpp + HEAD + http://github.com/janelia-flyem/libdvidcpp) + +# set libs and include +set (LIBDVIDCPP_LIBRARIES ${BUILDEM_DIR}/lib/libdvidcpp.a) +set (LIBDVIDCPP_INCLUDE_DIRS ${BUILDEM_DIR}/include/libdvid) + +message ("Installing ${libdvidcpp_NAME} into FlyEM build area: ${BUILDEM_DIR} ...") +ExternalProject_Add(${libdvidcpp_NAME} + DEPENDS ${cppnetlib_NAME} + PREFIX ${BUILDEM_DIR} + GIT_REPOSITORY ${libdvidcpp_URL} + UPDATE_COMMAND "" + PATCH_COMMAND "" + LIST_SEPARATOR ^^ + CONFIGURE_COMMAND ${BUILDEM_ENV_STRING} ${CMAKE_COMMAND} ${libdvidcpp_SRC_DIR} + -DCMAKE_INSTALL_PREFIX=${BUILDEM_DIR} + -DCMAKE_PREFIX_PATH=${BUILDEM_DIR} + -DCMAKE_EXE_LINKER_FLAGS=${BUILDEM_LDFLAGS} + -DDEPENDENCY_SEARCH_PREFIX=${BUILDEM_DIR} + -DCMAKE_CXX_FLAGS_RELEASE=-O3 + -DCMAKE_CXX_FLAGS_DEBUG="${CMAKE_CXX_FLAGS_DEBUG}" + BUILD_COMMAND ${BUILDEM_ENV_STRING} $(MAKE) + INSTALL_COMMAND ${BUILDEM_ENV_STRING} $(MAKE) install +) + +set_target_properties(${libdvidcpp_NAME} PROPERTIES EXCLUDE_FROM_ALL ON) + +endif (NOT libdvidcpp_NAME) From aa4490c628b4c3aa48260970b440721cc13cd064 Mon Sep 17 00:00:00 2001 From: Stuart Berg Date: Wed, 30 Apr 2014 08:59:04 -0400 Subject: [PATCH 14/62] vigra.cmake: Explicitly set several cmake variables that locate libtiff, libpng, etc. --- vigra.cmake | 37 +++++++++++++++++++++++++++++++------ 1 file changed, 31 insertions(+), 6 deletions(-) diff --git a/vigra.cmake b/vigra.cmake index e48ae18..0e2516a 100644 --- a/vigra.cmake +++ b/vigra.cmake @@ -65,27 +65,52 @@ ExternalProject_Add(${vigra_NAME} -DCMAKE_INSTALL_PREFIX=${BUILDEM_DIR} -DCMAKE_PREFIX_PATH=${BUILDEM_DIR} -DCMAKE_EXE_LINKER_FLAGS=${BUILDEM_LDFLAGS} + + -DWITH_VIGRANUMPY=${WITH_VIGRANUMPY} -DDEPENDENCY_SEARCH_PREFIX=${BUILDEM_DIR} + + -DBoost_INCLUDE_DIR=${BUILDEM_DIR}/include -DBoost_LIBRARY_DIRS=${BUILDEM_DIR}/lib - # -DBoost_PYTHON_LIBRARY=${BUILDEM_DIR}/lib/libboost_python-mt.${BUILDEM_PLATFORM_DYLIB_EXTENSION} - # -DBoost_PYTHON_LIBRARY_RELEASE=${BUILDEM_DIR}/lib/libboost_python-mt.${BUILDEM_PLATFORM_DYLIB_EXTENSION} - # -DBoost_PYTHON_LIBRARY_DEBUG=${BUILDEM_DIR}/lib/libboost_python-mt.${BUILDEM_PLATFORM_DYLIB_EXTENSION} - # -DVIGRANUMPY_LIBRARIES=${BUILDEM_DIR}/lib/libpython2.7.${BUILDEM_PLATFORM_DYLIB_EXTENSION}^^${BUILDEM_DIR}/lib/libboost_python.${BUILDEM_PLATFORM_DYLIB_EXTENSION} + -DBoost_PYTHON_LIBRARY=${BUILDEM_DIR}/lib/libboost_python-mt.${BUILDEM_PLATFORM_DYLIB_EXTENSION} + -DBoost_PYTHON_LIBRARY_RELEASE=${BUILDEM_DIR}/lib/libboost_python-mt.${BUILDEM_PLATFORM_DYLIB_EXTENSION} + -DBoost_PYTHON_LIBRARY_DEBUG=${BUILDEM_DIR}/lib/libboost_python-mt.${BUILDEM_PLATFORM_DYLIB_EXTENSION} + + -DPYTHON_EXECUTABLE=${PYTHON_EXE} + -DPYTHON_INCLUDE_PATH=${PYTHON_PREFIX}/include + -DPYTHON_LIBRARIES=${PYTHON_PREFIX}/lib/libpython.2.7.${BUILDEM_PLATFORM_DYLIB_EXTENSION} + -DPYTHON_NUMPY_INCLUDE_DIR=${PYTHON_PREFIX}/lib/python2.7/site-packages/numpy/core/include + -DPYTHON_SPHINX=${PYTHON_PREFIX}/bin/sphinx-build + + -DVIGRANUMPY_LIBRARIES=${PYTHON_PREFIX}/lib/libpython2.7.${BUILDEM_PLATFORM_DYLIB_EXTENSION}^^${BUILDEM_DIR}/lib/libboost_python.${BUILDEM_PLATFORM_DYLIB_EXTENSION}^^${BUILDEM_DIR}/lib/libboost_thread.${BUILDEM_PLATFORM_DYLIB_EXTENSION}^^${BUILDEM_DIR}/lib/libboost_system.${BUILDEM_PLATFORM_DYLIB_EXTENSION} + -DVIGRANUMPY_INSTALL_DIR=${PYTHON_PREFIX}/lib/python2.7/site-packages + + -DPNG_LIBRARY=${BUILDEM_DIR}/lib/libpng.${BUILDEM_PLATFORM_DYLIB_EXTENSION} + -DPNG_PNG_INCLUDE_DIR=${BUILDEM_DIR}/include + + -DTIFF_LIBRARY=${BUILDEM_DIR}/lib/libtiff.${BUILDEM_PLATFORM_DYLIB_EXTENSION} + -DTIFF_INCLUDE_DIR=${BUILDEM_DIR}/include + -DJPEG_INCLUDE_DIR=${BUILDEM_DIR}/include -DJPEG_LIBRARY=${BUILDEM_DIR}/lib/libjpeg.${BUILDEM_PLATFORM_DYLIB_EXTENSION} + -DHDF5_CORE_LIBRARY=${BUILDEM_DIR}/lib/libhdf5.${BUILDEM_PLATFORM_DYLIB_EXTENSION} -DHDF5_HL_LIBRARY=${BUILDEM_DIR}/lib/libhdf5_hl.${BUILDEM_PLATFORM_DYLIB_EXTENSION} -DHDF5_INCLUDE_DIR=${BUILDEM_DIR}/include + + -DZLIB_INCLUDE_DIR=${BUILDEM_DIR}/include + -DZLIB_LIBRARY=${BUILDEM_DIR}/lib/libz.${BUILDEM_PLATFORM_DYLIB_EXTENSION} + -DFFTW3F_INCLUDE_DIR= - -DWITH_VIGRANUMPY=${WITH_VIGRANUMPY} -DFFTW3F_LIBRARY= -DFFTW3_INCLUDE_DIR=${BUILDEM_DIR}/include -DFFTW3_LIBRARY=${BUILDEM_DIR}/lib/libfftw3.${BUILDEM_PLATFORM_DYLIB_EXTENSION} - -DCMAKE_CXX_FLAGS=-pthread + -DCMAKE_CXX_FLAGS=-pthread -DCMAKE_CXX_LINK_FLAGS=-pthread -DCMAKE_CXX_FLAGS_RELEASE=-O2\ -DNDEBUG # Some versions of gcc miscompile vigra at -O3 -DCMAKE_CXX_FLAGS_DEBUG="${CMAKE_CXX_FLAGS_DEBUG}" + + BUILD_COMMAND ${BUILDEM_ENV_STRING} $(MAKE) TEST_COMMAND ${BUILDEM_ENV_STRING} $(MAKE) check INSTALL_COMMAND ${BUILDEM_ENV_STRING} $(MAKE) install From 4727054a15f1d5dca49d6b8fd78118cc80a0f6a4 Mon Sep 17 00:00:00 2001 From: Stuart Berg Date: Wed, 30 Apr 2014 08:59:33 -0400 Subject: [PATCH 15/62] qt4.cmake: Don't skip qt-accessibility. --- qt4.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qt4.cmake b/qt4.cmake index 7695b2b..79a563a 100644 --- a/qt4.cmake +++ b/qt4.cmake @@ -82,9 +82,9 @@ ExternalProject_Add(${qt4_NAME} -no-dbus -no-cups -no-nis + #-no-accessibility # Must include accessibility because PySide tries to build wrappers for it. -release -shared - -no-accessibility -fontconfig -system-zlib -system-libpng From c976e36dbf5e1cfe8dff5f2102c282eec1a8f3f4 Mon Sep 17 00:00:00 2001 From: Stephen Plaza Date: Sun, 18 May 2014 21:57:03 -0400 Subject: [PATCH 16/62] updates default boost -- vigra and neuroproof tested --- boost.cmake | 8 ++++---- cppnetlib.cmake | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/boost.cmake b/boost.cmake index 6526bdb..a6ad677 100644 --- a/boost.cmake +++ b/boost.cmake @@ -17,10 +17,10 @@ set (boost_INCLUDE_DIR ${BUILDEM_INCLUDE_DIR}/boost) include_directories (${boost_INCLUDE_DIR}) external_source (boost - 1_51_0 - boost_1_51_0.tar.gz - 6a1f32d902203ac70fbec78af95b3cf8 - http://downloads.sourceforge.net/project/boost/boost/1.51.0) + 1_55_0 + boost_1_55_0.tar.gz + 93780777cfbf999a600f62883bd54b17 + http://sourceforge.net/projects/boost/files/boost/1.55.0/) set (boost_LIBS ${BUILDEM_LIB_DIR}/libboost_thread.${BUILDEM_PLATFORM_DYLIB_EXTENSION} ${BUILDEM_LIB_DIR}/libboost_system.${BUILDEM_PLATFORM_DYLIB_EXTENSION} diff --git a/cppnetlib.cmake b/cppnetlib.cmake index e007c4a..db68df8 100644 --- a/cppnetlib.cmake +++ b/cppnetlib.cmake @@ -11,7 +11,7 @@ include (ExternalSource) include (BuildSupport) include (PatchSupport) -include (boost1550) +include (boost) external_source (cppnetlib 0.11.0 @@ -25,7 +25,7 @@ set (CPPNETLIB_LIBRARIES ${BUILDEM_DIR}/lib64/libcppnetlib-client-connections.a message ("Installing ${cppnetlib_NAME} into FlyEM build area: ${BUILDEM_DIR} ...") ExternalProject_Add(${cppnetlib_NAME} - DEPENDS ${boost1550_NAME} + DEPENDS ${boost_NAME} PREFIX ${BUILDEM_DIR} URL ${cppnetlib_URL} URL_MD5 ${cppnetlib_MD5} From 069e9087342e8869869c457ea543fe59579ff958 Mon Sep 17 00:00:00 2001 From: Steve Plaza Date: Tue, 20 May 2014 11:02:07 -0400 Subject: [PATCH 17/62] adds atomic boost library for cppnetlib --- boost.cmake | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/boost.cmake b/boost.cmake index a6ad677..0eda2d8 100644 --- a/boost.cmake +++ b/boost.cmake @@ -28,7 +28,8 @@ set (boost_LIBS ${BUILDEM_LIB_DIR}/libboost_thread.${BUILDEM_PLATFORM_DYLIB_EXTE ${BUILDEM_LIB_DIR}/libboost_python.${BUILDEM_PLATFORM_DYLIB_EXTENSION} ${BUILDEM_LIB_DIR}/libboost_unit_test_framework.${BUILDEM_PLATFORM_DYLIB_EXTENSION} ${BUILDEM_LIB_DIR}/libboost_filesystem.${BUILDEM_PLATFORM_DYLIB_EXTENSION} - ${BUILDEM_LIB_DIR}/libboost_chrono.${BUILDEM_PLATFORM_DYLIB_EXTENSION} ) + ${BUILDEM_LIB_DIR}/libboost_chrono.${BUILDEM_PLATFORM_DYLIB_EXTENSION} + ${BUILDEM_LIB_DIR}/libboost_atomic.${BUILDEM_PLATFORM_DYLIB_EXTENSION} ) # Add layout=tagged param to first boost install to explicitly create -mt libraries # some libraries require. TODO: Possibly shore up all library find paths to only @@ -42,7 +43,7 @@ ExternalProject_Add(${boost_NAME} UPDATE_COMMAND "" PATCH_COMMAND "" CONFIGURE_COMMAND ${BUILDEM_ENV_STRING} ./bootstrap.sh - --with-libraries=date_time,filesystem,python,regex,serialization,system,test,thread,program_options,chrono + --with-libraries=date_time,filesystem,python,regex,serialization,system,test,thread,program_options,chrono,atomic --with-python=${PYTHON_EXE} --prefix=${BUILDEM_DIR} LDFLAGS=${BUILDEM_LDFLAGS} From aa938f8172a99678de58273be78a0132f946b63e Mon Sep 17 00:00:00 2001 From: Carsten Haubold Date: Thu, 22 May 2014 14:57:29 +0200 Subject: [PATCH 18/62] Update psutil to fix https://github.com/ilastik/ilastik/issues/891 --- psutil.cmake | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/psutil.cmake b/psutil.cmake index 338bd50..faad4ff 100644 --- a/psutil.cmake +++ b/psutil.cmake @@ -13,10 +13,12 @@ include (BuildSupport) include (python) external_source (psutil - 0.6.1 - psutil-0.6.1.tar.gz - 3cfcbfb8525f6e4c70110e44a85e907e - http://psutil.googlecode.com/files) + 2.1.1 + psutil-2.1.1.tar.gz + 72a6b15d589fab11f6ca245b775bc3c6 + https://pypi.python.org/packages/source/p/psutil + FORCE +) message ("Installing ${psutil_NAME} into FlyEM build area: ${BUILDEM_DIR} ...") ExternalProject_Add(${psutil_NAME} From 4a31ff94498155c30d4429daa97e9528a461c9ef Mon Sep 17 00:00:00 2001 From: Stuart Berg Date: Fri, 23 May 2014 14:29:15 -0400 Subject: [PATCH 19/62] BUILDEM_ENV_STRING: Add CC and CXX environment variables, based on CMAKE compiler vars. --- BuildSupport.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BuildSupport.cmake b/BuildSupport.cmake index b0fd0b1..d8a1f71 100644 --- a/BuildSupport.cmake +++ b/BuildSupport.cmake @@ -64,7 +64,7 @@ endif() # Initialize environment variables string to use for commands. set (BUILDEM_BIN_PATH ${BUILDEM_BIN_DIR}:$ENV{PATH}) set (BUILDEM_LIB_PATH ${BUILDEM_LIB_DIR}:$ENV{${BUILDEM_LD_LIBRARY_VAR}}) -set (BUILDEM_ENV_STRING env PATH=${BUILDEM_BIN_PATH} ${BUILDEM_LD_LIBRARY_VAR}=${BUILDEM_LIB_PATH} ${BUILDEM_PLATFORM_SPECIFIC_ENV}) +set (BUILDEM_ENV_STRING env PATH=${BUILDEM_BIN_PATH} ${BUILDEM_LD_LIBRARY_VAR}=${BUILDEM_LIB_PATH} ${BUILDEM_PLATFORM_SPECIFIC_ENV} CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER}) set (BUILDEM_LDFLAGS "-Wl,-rpath,${BUILDEM_LIB_DIR} -L${BUILDEM_LIB_DIR}") # All library builds should go to BPD/lib From e4821425af63a73b87d420557e87f439e0d0f496 Mon Sep 17 00:00:00 2001 From: Stuart Berg Date: Fri, 23 May 2014 14:29:15 -0400 Subject: [PATCH 20/62] BUILDEM_ENV_STRING: Add CC and CXX environment variables, based on CMAKE compiler vars. --- BuildSupport.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BuildSupport.cmake b/BuildSupport.cmake index b0fd0b1..d8a1f71 100644 --- a/BuildSupport.cmake +++ b/BuildSupport.cmake @@ -64,7 +64,7 @@ endif() # Initialize environment variables string to use for commands. set (BUILDEM_BIN_PATH ${BUILDEM_BIN_DIR}:$ENV{PATH}) set (BUILDEM_LIB_PATH ${BUILDEM_LIB_DIR}:$ENV{${BUILDEM_LD_LIBRARY_VAR}}) -set (BUILDEM_ENV_STRING env PATH=${BUILDEM_BIN_PATH} ${BUILDEM_LD_LIBRARY_VAR}=${BUILDEM_LIB_PATH} ${BUILDEM_PLATFORM_SPECIFIC_ENV}) +set (BUILDEM_ENV_STRING env PATH=${BUILDEM_BIN_PATH} ${BUILDEM_LD_LIBRARY_VAR}=${BUILDEM_LIB_PATH} ${BUILDEM_PLATFORM_SPECIFIC_ENV} CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER}) set (BUILDEM_LDFLAGS "-Wl,-rpath,${BUILDEM_LIB_DIR} -L${BUILDEM_LIB_DIR}") # All library builds should go to BPD/lib From fc8e2b79a97048d89185d4fbdbb6616eceaad4b4 Mon Sep 17 00:00:00 2001 From: Stuart Berg Date: Tue, 27 May 2014 11:27:45 -0400 Subject: [PATCH 21/62] Added futures.cmake (python futures module backported from Python 3) --- futures.cmake | 41 +++++++++++++++++++++++++++++++++++++++++ ilastik.cmake | 3 ++- 2 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 futures.cmake diff --git a/futures.cmake b/futures.cmake new file mode 100644 index 0000000..b0f64d6 --- /dev/null +++ b/futures.cmake @@ -0,0 +1,41 @@ +# +# Install futures library from source +# + +if (NOT futures_NAME) + +CMAKE_MINIMUM_REQUIRED(VERSION 2.8) + +include (ExternalProject) +include (ExternalSource) +include (BuildSupport) + +include (python) +include (setuptools) + +external_source (futures + 2.1.6 + futures-2.1.6.tar.gz + cfab9ac3cd55d6c7ddd0546a9f22f453 + https://pypi.python.org/packages/source/f/futures) + +message ("Installing ${futures_NAME} into ilastik build area: ${BUILDEM_DIR} ...") +ExternalProject_Add(${futures_NAME} + DEPENDS ${python_NAME} ${setuptools_NAME} + PREFIX ${BUILDEM_DIR} + URL ${futures_URL} + URL_MD5 ${futures_MD5} + UPDATE_COMMAND "" + PATCH_COMMAND "" + CONFIGURE_COMMAND "" + BUILD_COMMAND ${BUILDEM_ENV_STRING} ${PYTHON_EXE} setup.py install + BUILD_IN_SOURCE 1 + TEST_COMMAND "" + INSTALL_COMMAND "" +) + +set_target_properties(${futures_NAME} PROPERTIES EXCLUDE_FROM_ALL ON) + + +endif (NOT futures_NAME) + diff --git a/ilastik.cmake b/ilastik.cmake index 90fc141..64336ea 100644 --- a/ilastik.cmake +++ b/ilastik.cmake @@ -33,6 +33,7 @@ include (nose) include (faulthandler) include (jsonschema) # Required for the dvid extension. include (opengm) +include (futures) # select the desired ilastik commit set(DEFAULT_ILASTIK_VERSION "v1.0.2") @@ -71,7 +72,7 @@ endif() message ("Installing ${ilastik_NAME}/${ILASTIK_VERSION} into FlyEM build area: ${BUILDEM_DIR} ...") -set (ilastik_dependencies ${vigra_NAME} ${h5py_NAME} ${psutil_NAME} ${nose_NAME} +set (ilastik_dependencies ${vigra_NAME} ${h5py_NAME} ${psutil_NAME} ${nose_NAME} ${futures_NAME} ${blist_NAME} ${greenlet_NAME} ${yapsy_NAME} ${faulthandler_NAME} ${cylemon_NAME} ${scikit-learn_NAME} ${jsonschema_NAME} ${opengm_NAME} ) From 7df9ed9372494b66892cfa23e7b17a48c1c7b45b Mon Sep 17 00:00:00 2001 From: Stuart Berg Date: Tue, 27 May 2014 11:50:29 -0400 Subject: [PATCH 22/62] Updated scikit-image to 0.9.3 --- scikit-image.cmake | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scikit-image.cmake b/scikit-image.cmake index 5524393..572ea6e 100644 --- a/scikit-image.cmake +++ b/scikit-image.cmake @@ -16,10 +16,10 @@ include (numpy) include (scipy) external_source (scikit-image - 0.7.2 - scikit-image-0.7.2.tar.gz - 80eb9862fa09c7e06eda6e2a9fc4042f - http://pypi.python.org/packages/source/s/scikit-image) + 0.9.3 + scikit-image-0.9.3.tar.gz + f010e0cd46ee2996a6875c96b216e768 + https://pypi.python.org/packages/source/s/scikit-image) message ("Installing ${scikit-image_NAME} into FlyEM build area: ${BUILDEM_DIR} ...") ExternalProject_Add(${scikit-image_NAME} From 4d9ddf167a8873019a4275612e11d7ca85aecff3 Mon Sep 17 00:00:00 2001 From: Stuart Berg Date: Wed, 28 May 2014 15:12:02 -0400 Subject: [PATCH 23/62] vtk.cmake: Added explicit search path to linker flags. --- vtk.cmake | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/vtk.cmake b/vtk.cmake index 864cecc..56a04ed 100644 --- a/vtk.cmake +++ b/vtk.cmake @@ -44,6 +44,11 @@ ExternalProject_Add(${vtk_NAME} CONFIGURE_COMMAND ${BUILDEM_ENV_STRING} ${CMAKE_COMMAND} ${vtk_SRC_DIR} -DCMAKE_INSTALL_PREFIX=${BUILDEM_DIR} -DBUILD_SHARED_LIBS:BOOL=ON + # For some reason, this linker search path must be explicitly passed in (on mac, at least). + # (On Mac, CMake automatically uses -F/bla/bla/bla, but for some of the vtk libraries, we need to use -L/bla/bla) + -DCMAKE_EXE_LINKER_FLAGS=-L${BUILDEM_LIB_DIR} + -DCMAKE_MODULE_LINKER_FLAGS=-L${BUILDEM_LIB_DIR} + -DCMAKE_SHARED_LINKER_FLAGS=-L${BUILDEM_LIB_DIR} # These python settings must be manually specified for the mac build (maybe not for linux, but it shouldn't hurt) -DVTK_PYTHON_SETUP_ARGS=--prefix=${PYTHON_PREFIX} -DPYTHON_INCLUDE_DIR:PATH=${PYTHON_INCLUDE_PATH} From 6f444efe880885401eb1c9c530b061bfe05253e7 Mon Sep 17 00:00:00 2001 From: Stuart Berg Date: Wed, 28 May 2014 16:09:19 -0400 Subject: [PATCH 24/62] opengm: Added a patch to let us skip the sphinx docs build with a cmake switch. --- opengm.cmake | 6 ++- patches/opengm.patch | 89 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 94 insertions(+), 1 deletion(-) create mode 100644 patches/opengm.patch diff --git a/opengm.cmake b/opengm.cmake index fa7c319..6741c35 100644 --- a/opengm.cmake +++ b/opengm.cmake @@ -33,7 +33,10 @@ ExternalProject_Add(${opengm_NAME} GIT_REPOSITORY ${opengm_URL} GIT_TAG ${opengm_TAG} UPDATE_COMMAND "" - PATCH_COMMAND "" + # This patch adds the BUILD_PYTHON_DOCS setting, used to avoid building the sphinx documentation. + # Future versions of OpenGM will probably not need this patch. + PATCH_COMMAND ${BUILDEM_ENV_STRING} ${PATCH_EXE} + ${opengm_SRC_DIR}/src/interfaces/python/CMakeLists.txt ${PATCH_DIR}/opengm.patch CONFIGURE_COMMAND ${BUILDEM_ENV_STRING} ${CMAKE_COMMAND} ${opengm_SRC_DIR} -DCMAKE_INSTALL_PREFIX=${BUILDEM_DIR} @@ -42,6 +45,7 @@ ExternalProject_Add(${opengm_NAME} -DWITH_BOOST=ON -DWITH_HDF5=ON -DBUILD_PYTHON_WRAPPER=ON + -DBUILD_PYTHON_DOCS=OFF -DWITH_OPENMP=OFF # Mac doesn't support OpenMP ${CMAKE_CPLEX_ROOT_DIR} diff --git a/patches/opengm.patch b/patches/opengm.patch new file mode 100644 index 0000000..77ce090 --- /dev/null +++ b/patches/opengm.patch @@ -0,0 +1,89 @@ +--- src/interfaces/python/CMakeLists.txt 2014-05-28 16:03:43.000000000 -0400 ++++ src/interfaces/python/CMakeLists.txt2 2014-05-28 16:03:38.000000000 -0400 +@@ -16,47 +16,50 @@ + + message(STATUS ${OPENGM_PYTHON_BUILD_MODULE_DIR}) + +-find_package(SPHINX) +-if(SPHINX_FOUND) +- message(STATUS "FOUND_SPHINX") ++set( BUILD_PYTHON_DOCS 0 CACHE BOOL "Build the Python documentation with Sphinx" ) + +- if(NOT DEFINED SPHINX_THEME) +- set(SPHINX_THEME default) ++if(BUILD_PYTHON_DOCS) ++ find_package(SPHINX) ++ if(SPHINX_FOUND) ++ message(STATUS "FOUND_SPHINX") ++ ++ if(NOT DEFINED SPHINX_THEME) ++ set(SPHINX_THEME default) ++ endif() ++ if(NOT DEFINED SPHINX_THEME_DIR) ++ set(SPHINX_THEME_DIR) ++ endif() ++ # configured documentation tools and intermediate build results ++ set(BINARY_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}/_build") ++ file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/_build) ++ # Sphinx cache with pickled ReST documents ++ set(SPHINX_CACHE_DIR "${CMAKE_CURRENT_BINARY_DIR}/opengm/_doctrees") ++ # HTML output directory ++ set(SPHINX_HTML_DIR "${CMAKE_CURRENT_BINARY_DIR}/opengm/html") ++ configure_file( ++ "${CMAKE_CURRENT_SOURCE_DIR}/docsrc/source/conf.py.in" ++ #"${CMAKE_CURRENT_SOURCE_DIR}/docsrc/source/conf.py" ++ "${BINARY_BUILD_DIR}/conf.py" ++ @ONLY) ++ add_custom_target(python-doc ALL ++ ${SPHINX_EXECUTABLE} ++ -q -b html ++ #-c "${CMAKE_CURRENT_SOURCE_DIR}/docsrc/source" ++ -c "${BINARY_BUILD_DIR}" ++ -d "${SPHINX_CACHE_DIR}" ++ "${CMAKE_CURRENT_SOURCE_DIR}/docsrc/source" ++ "${SPHINX_HTML_DIR}" ++ COMMENT "Building HTML documentation with Sphinx") ++ add_dependencies(python-doc _opengmcore ) ++ add_dependencies(python-doc _inference ) ++ add_dependencies(python-doc _hdf5 ) ++ ++ else() ++ message(STATUS "CANNOT Building HTML documentation with Sphinx , did not find Sphinx") + endif() +- if(NOT DEFINED SPHINX_THEME_DIR) +- set(SPHINX_THEME_DIR) +- endif() +- # configured documentation tools and intermediate build results +- set(BINARY_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}/_build") +- file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/_build) +- # Sphinx cache with pickled ReST documents +- set(SPHINX_CACHE_DIR "${CMAKE_CURRENT_BINARY_DIR}/opengm/_doctrees") +- # HTML output directory +- set(SPHINX_HTML_DIR "${CMAKE_CURRENT_BINARY_DIR}/opengm/html") +- configure_file( +- "${CMAKE_CURRENT_SOURCE_DIR}/docsrc/source/conf.py.in" +- #"${CMAKE_CURRENT_SOURCE_DIR}/docsrc/source/conf.py" +- "${BINARY_BUILD_DIR}/conf.py" +- @ONLY) +- add_custom_target(python-doc ALL +- ${SPHINX_EXECUTABLE} +- -q -b html +- #-c "${CMAKE_CURRENT_SOURCE_DIR}/docsrc/source" +- -c "${BINARY_BUILD_DIR}" +- -d "${SPHINX_CACHE_DIR}" +- "${CMAKE_CURRENT_SOURCE_DIR}/docsrc/source" +- "${SPHINX_HTML_DIR}" +- COMMENT "Building HTML documentation with Sphinx") +- add_dependencies(python-doc _opengmcore ) +- add_dependencies(python-doc _inference ) +- add_dependencies(python-doc _hdf5 ) +- +-else() +- message(STATUS "CANNOT Building HTML documentation with Sphinx , did not find Sphinx") + endif() + + + + + +- From 3f7d4cb1f247e4c77748c5d8586f7ce2965ecaff Mon Sep 17 00:00:00 2001 From: vagrant Date: Thu, 29 May 2014 14:10:46 +0000 Subject: [PATCH 25/62] qt4.cmake: Don't build accessibility module, since causes build issues on Ubuntu. --- qt4.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qt4.cmake b/qt4.cmake index 79a563a..d8028ba 100644 --- a/qt4.cmake +++ b/qt4.cmake @@ -82,7 +82,7 @@ ExternalProject_Add(${qt4_NAME} -no-dbus -no-cups -no-nis - #-no-accessibility # Must include accessibility because PySide tries to build wrappers for it. + -no-accessibility # accessibility causes PyQt build issues on Ubuntu and Mavericks, but PySide can't build without it. -release -shared -fontconfig From 1cfa61e42c3cdae6c37a35bef6e91de362dc7fc9 Mon Sep 17 00:00:00 2001 From: Stuart Berg Date: Thu, 29 May 2014 14:43:54 -0400 Subject: [PATCH 26/62] vigra.cmake: On Mac, use -DWITH_BOOST_THREAD. Also, updated default version to today's master. --- vigra.cmake | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/vigra.cmake b/vigra.cmake index 0e2516a..430af11 100644 --- a/vigra.cmake +++ b/vigra.cmake @@ -31,7 +31,7 @@ endif() include (nose) # select the desired VIGRA commit -set(DEFAULT_VIGRA_VERSION "05cf09388e28ab9db49fda3763500f128445897d") # from 2013-12-17 +set(DEFAULT_VIGRA_VERSION "4fe15e890e0252f2fb2b38552d321d43f32c07b5") # from 2014-05-23 IF(NOT DEFINED VIGRA_VERSION) SET(VIGRA_VERSION "${DEFAULT_VIGRA_VERSION}") ENDIF() @@ -49,6 +49,12 @@ else() set(VIGRA_UPDATE_COMMAND git fetch origin && git checkout ${VIGRA_VERSION}) endif() +if (APPLE) + set(VIGRA_THREAD_SETTING "-DWITH_BOOST_THREAD=1") +else() + set(VIGRA_THREAD_SETTING "") +endif() + message ("Installing ${vigra_NAME}/${VIGRA_VERSION} into FlyEM build area: ${BUILDEM_DIR} ...") ExternalProject_Add(${vigra_NAME} DEPENDS ${libjpeg_NAME} ${libtiff_NAME} ${libpng_NAME} ${openexr_NAME} ${libfftw_NAME} @@ -65,6 +71,8 @@ ExternalProject_Add(${vigra_NAME} -DCMAKE_INSTALL_PREFIX=${BUILDEM_DIR} -DCMAKE_PREFIX_PATH=${BUILDEM_DIR} -DCMAKE_EXE_LINKER_FLAGS=${BUILDEM_LDFLAGS} + + ${VIGRA_THREAD_SETTING} -DWITH_VIGRANUMPY=${WITH_VIGRANUMPY} -DDEPENDENCY_SEARCH_PREFIX=${BUILDEM_DIR} From 1bb1de5b7420264a65d470b524548a958efcaa23 Mon Sep 17 00:00:00 2001 From: Stuart Berg Date: Fri, 6 Jun 2014 11:10:55 -0400 Subject: [PATCH 27/62] libtiff: Explicitly disable support for lzma compression. --- libtiff.cmake | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libtiff.cmake b/libtiff.cmake index 3575da9..4725163 100644 --- a/libtiff.cmake +++ b/libtiff.cmake @@ -38,6 +38,8 @@ ExternalProject_Add(${libtiff_NAME} --prefix=${BUILDEM_DIR} LDFLAGS=${BUILDEM_LDFLAGS} CPPFLAGS=-I${BUILDEM_DIR}/include + --disable-lzma # Don't accidentally link against system lzma .so files. + # vigra and scikit-image don't support lzma tiff compression, so there's no need for it. --disable-jbig BUILD_COMMAND ${BUILDEM_ENV_STRING} $(MAKE) BUILD_IN_SOURCE 1 From 4ec6ceed48437421635796141a5d421ced76da59 Mon Sep 17 00:00:00 2001 From: Stuart Berg Date: Tue, 10 Jun 2014 14:16:43 -0400 Subject: [PATCH 28/62] ilastik: environment setup scripts don't automatically clear the LD_LIBRARY_PATH. --- templates/setenv_ilastik_gui.in | 11 +++++++---- templates/setenv_ilastik_headless.in | 6 ++++++ 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/templates/setenv_ilastik_gui.in b/templates/setenv_ilastik_gui.in index 32375a0..9112ab8 100644 --- a/templates/setenv_ilastik_gui.in +++ b/templates/setenv_ilastik_gui.in @@ -13,10 +13,13 @@ else export ILASTIK_PATH=$(cd $BUILDEM_DIR/@ILASTIK_DIR_RELATIVE@ && pwd) fi export PYTHON_PREFIX=$(cd $BUILDEM_DIR/@PYTHON_PREFIX_RELATIVE@ && pwd) - - # Do not use the user's previous LD_LIBRARY_PATH settings because they can cause conflicts. - # Start with an empty LD_LIBRARY_PATH - export @BUILDEM_LD_LIBRARY_VAR@="" + + ILASTIK_USE_CLEAN_LD_LIBRARY_PATH=${ILASTIK_USE_CLEAN_LD_LIBRARY_PATH-0} + if [ $ILASTIK_USE_CLEAN_LD_LIBRARY_PATH -eq 1 ]; then + # Do not use the user's previous LD_LIBRARY_PATH settings because they can cause conflicts. + # Start with an empty LD_LIBRARY_PATH + export @BUILDEM_LD_LIBRARY_VAR@="" + fi export @BUILDEM_LD_LIBRARY_VAR@=$BUILDEM_DIR/lib:$@BUILDEM_LD_LIBRARY_VAR@ export @BUILDEM_LD_LIBRARY_VAR@=$BUILDEM_DIR/lib/vtk-5.10:$@BUILDEM_LD_LIBRARY_VAR@ export @BUILDEM_LD_LIBRARY_VAR@=$PYTHON_PREFIX/lib/python2.7/site-packages:$@BUILDEM_LD_LIBRARY_VAR@ diff --git a/templates/setenv_ilastik_headless.in b/templates/setenv_ilastik_headless.in index 481c696..52a3d5b 100644 --- a/templates/setenv_ilastik_headless.in +++ b/templates/setenv_ilastik_headless.in @@ -14,6 +14,12 @@ else fi export PYTHON_PREFIX=$(cd $BUILDEM_DIR/@PYTHON_PREFIX_RELATIVE@ && pwd) + ILASTIK_USE_CLEAN_LD_LIBRARY_PATH=${ILASTIK_USE_CLEAN_LD_LIBRARY_PATH-0} + if [ $ILASTIK_USE_CLEAN_LD_LIBRARY_PATH -eq 1 ]; then + # Do not use the user's previous LD_LIBRARY_PATH settings because they can cause conflicts. + # Start with an empty LD_LIBRARY_PATH + export @BUILDEM_LD_LIBRARY_VAR@="" + fi # Do not use the user's previous LD_LIBRARY_PATH settings because they can cause conflicts. # Start with an empty LD_LIBRARY_PATH export @BUILDEM_LD_LIBRARY_VAR@="" From 46204432045b0291251d1a7f7640b9eaaadd852e Mon Sep 17 00:00:00 2001 From: Stuart Berg Date: Tue, 10 Jun 2014 17:06:09 -0400 Subject: [PATCH 29/62] ilastik.cmake: Updated default ilastik checkout sha --- ilastik.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ilastik.cmake b/ilastik.cmake index 64336ea..50ffe27 100644 --- a/ilastik.cmake +++ b/ilastik.cmake @@ -36,7 +36,7 @@ include (opengm) include (futures) # select the desired ilastik commit -set(DEFAULT_ILASTIK_VERSION "v1.0.2") +set(DEFAULT_ILASTIK_VERSION 233886caf405623d8e17b260716b743cb4b96527) # 2014-06-10 IF(NOT DEFINED ILASTIK_VERSION) SET(ILASTIK_VERSION "${DEFAULT_ILASTIK_VERSION}") ENDIF() From f8f08296d8b931968a5c13627178460b8efa5f71 Mon Sep 17 00:00:00 2001 From: Steve Plaza Date: Wed, 11 Jun 2014 15:34:01 -0400 Subject: [PATCH 30/62] updates sha for ilastik.cmake --- ilastik.cmake | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ilastik.cmake b/ilastik.cmake index 50ffe27..651e7a7 100644 --- a/ilastik.cmake +++ b/ilastik.cmake @@ -36,7 +36,7 @@ include (opengm) include (futures) # select the desired ilastik commit -set(DEFAULT_ILASTIK_VERSION 233886caf405623d8e17b260716b743cb4b96527) # 2014-06-10 +set(DEFAULT_ILASTIK_VERSION 18026ae2efb9e9e04046598cd5fccca3a42bcdaa) # 2014-06-11 IF(NOT DEFINED ILASTIK_VERSION) SET(ILASTIK_VERSION "${DEFAULT_ILASTIK_VERSION}") ENDIF() @@ -145,6 +145,7 @@ configure_file(${TEMPLATE_DIR}/ilastik_script.template ${BUILDEM_DIR}/bin/ilasti set(LAUNCH_ILASTIK ilastik/ilastik/workflows/pixelClassification/pixelClassificationClusterized.py) configure_file(${TEMPLATE_DIR}/ilastik_script.template ${BUILDEM_DIR}/bin/ilastik_clusterized @ONLY) + set_target_properties(${ilastik_NAME} PROPERTIES EXCLUDE_FROM_ALL ON) endif (NOT ilastik_NAME) From 321983a8bc52c39db0e414ac00d4e6af4b516efa Mon Sep 17 00:00:00 2001 From: Carsten Haubold Date: Thu, 12 Jun 2014 16:31:57 +0200 Subject: [PATCH 31/62] Fixing Qt compilation with GCC 4.8 on OSX --- patches/qt4-create-symlinks.sh | 9 +++ patches/qt4-osx-draw-ellipse.patch | 19 ++++++ patches/qt4-osx-mavericks-configure.patch | 21 +++++++ patches/qt4-osx-mavericks-gui-pro.patch | 77 +++++++++++++++++++++++ qt4.cmake | 36 +++++++---- 5 files changed, 149 insertions(+), 13 deletions(-) create mode 100644 patches/qt4-create-symlinks.sh create mode 100644 patches/qt4-osx-draw-ellipse.patch create mode 100644 patches/qt4-osx-mavericks-configure.patch create mode 100644 patches/qt4-osx-mavericks-gui-pro.patch diff --git a/patches/qt4-create-symlinks.sh b/patches/qt4-create-symlinks.sh new file mode 100644 index 0000000..5cfdab7 --- /dev/null +++ b/patches/qt4-create-symlinks.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +BUILDEM_DIR=$1 +FRAMEWORKS=$(ls ${BUILDEM_DIR}/lib | grep framework$) + +for i in ${FRAMEWORKS} +do + ln -s ${BUILDEM_DIR}/lib/$i/Headers ${BUILDEM_DIR}/include/`echo \$i | sed 's/.framework//g'` +done \ No newline at end of file diff --git a/patches/qt4-osx-draw-ellipse.patch b/patches/qt4-osx-draw-ellipse.patch new file mode 100644 index 0000000..f108994 --- /dev/null +++ b/patches/qt4-osx-draw-ellipse.patch @@ -0,0 +1,19 @@ +diff --git a/src/gui/painting/qpaintengine_mac.cpp b/src/gui/painting/qpaintengine_mac.cpp +index 47e51b4..92822a9 100644 +--- a/src/gui/painting/qpaintengine_mac.cpp ++++ b/src/gui/painting/qpaintengine_mac.cpp +@@ -914,8 +914,14 @@ QCoreGraphicsPaintEngine::drawEllipse(const QRectF &r) + if (state->compositionMode() == QPainter::CompositionMode_Destination) + return; + ++ // only call CGPathAddArc if the positions x and y are valid ++ CGRect rect = CGRectMake(r.x(), r.y(), r.width(), r.height()); ++ if (CGRectIsEmpty(rect) || CGRectIsInfinite(rect)) ++ return; ++ + CGMutablePathRef path = CGPathCreateMutable(); + CGAffineTransform transform = CGAffineTransformMakeScale(r.width() / r.height(), 1); ++ + CGPathAddArc(path, &transform,(r.x() + (r.width() / 2)) / (r.width() / r.height()), + r.y() + (r.height() / 2), r.height() / 2, 0, (2 * M_PI), false); + d->drawPath(QCoreGraphicsPaintEnginePrivate::CGFill | QCoreGraphicsPaintEnginePrivate::CGStroke, diff --git a/patches/qt4-osx-mavericks-configure.patch b/patches/qt4-osx-mavericks-configure.patch new file mode 100644 index 0000000..9cffd44 --- /dev/null +++ b/patches/qt4-osx-mavericks-configure.patch @@ -0,0 +1,21 @@ +--- ilastik_build_dir_2/src/qt4-git/configure 2014-04-11 17:46:22.000000000 -0400 ++++ ilastik_build_dir/src/qt4-git/configure 2014-04-11 17:31:32.000000000 -0400 +@@ -7993,10 +7993,14 @@ + QMakeVar add QMAKE_OBJECTIVE_CFLAGS_PPC "-arch ppc -Xarch_ppc -mmacosx-version-min=10.4" + fi + if echo "$CFG_MAC_ARCHS" | grep '\' > /dev/null 2>&1; then +- QMakeVar add QMAKE_CFLAGS "-Xarch_x86_64 -mmacosx-version-min=10.5" +- QMakeVar add QMAKE_CXXFLAGS "-Xarch_x86_64 -mmacosx-version-min=10.5" +- QMakeVar add QMAKE_LFLAGS "-Xarch_x86_64 -mmacosx-version-min=10.5" +- QMakeVar add QMAKE_OBJECTIVE_CFLAGS_X86_64 "-arch x86_64 -Xarch_x86_64 -mmacosx-version-min=10.5" ++# QMakeVar add QMAKE_CFLAGS "-Xarch_x86_64 -mmacosx-version-min=10.5" ++# QMakeVar add QMAKE_CXXFLAGS "-Xarch_x86_64 -mmacosx-version-min=10.5" ++# QMakeVar add QMAKE_LFLAGS "-Xarch_x86_64 -mmacosx-version-min=10.5" ++# QMakeVar add QMAKE_OBJECTIVE_CFLAGS_X86_64 "-arch x86_64 -Xarch_x86_64 -mmacosx-version-min=10.5" ++ QMakeVar add QMAKE_CFLAGS "-mmacosx-version-min=10.5" ++ QMakeVar add QMAKE_CXXFLAGS "-mmacosx-version-min=10.5" ++ QMakeVar add QMAKE_LFLAGS "-mmacosx-version-min=10.5" ++ QMakeVar add QMAKE_OBJECTIVE_CFLAGS_X86_64 "-arch x86_64 -mmacosx-version-min=10.5" + fi + if echo "$CFG_MAC_ARCHS" | grep '\' > /dev/null 2>&1; then + QMakeVar add QMAKE_CFLAGS "-Xarch_ppc64 -mmacosx-version-min=10.5" diff --git a/patches/qt4-osx-mavericks-gui-pro.patch b/patches/qt4-osx-mavericks-gui-pro.patch new file mode 100644 index 0000000..109e88a --- /dev/null +++ b/patches/qt4-osx-mavericks-gui-pro.patch @@ -0,0 +1,77 @@ +--- ilastik_build_dir_2/src/qt4-git/src/gui/gui.pro 2014-04-11 17:46:26.000000000 -0400 ++++ ilastik_build_dir/src/qt4-git/src/gui/gui.pro 2014-04-11 17:31:23.000000000 -0400 +@@ -95,8 +95,9 @@ + mmx_compiler.commands = $$QMAKE_CXX -c -Winline + + mac { +- mmx_compiler.commands += -Xarch_i386 -mmmx +- mmx_compiler.commands += -Xarch_x86_64 -mmmx ++# mmx_compiler.commands += -Xarch_i386 -mmmx ++# mmx_compiler.commands += -Xarch_x86_64 -mmmx ++ mmx_compiler.commands += -mmmx + } else { + mmx_compiler.commands += -mmmx + } +@@ -114,8 +115,9 @@ + mmx3dnow_compiler.commands = $$QMAKE_CXX -c -Winline + + mac { +- mmx3dnow_compiler.commands += -Xarch_i386 -m3dnow -Xarch_i386 -mmmx +- mmx3dnow_compiler.commands += -Xarch_x86_64 -m3dnow -Xarch_x86_64 -mmmx ++# mmx3dnow_compiler.commands += -Xarch_i386 -m3dnow -Xarch_i386 -mmmx ++# mmx3dnow_compiler.commands += -Xarch_x86_64 -m3dnow -Xarch_x86_64 -mmmx ++ mmx3dnow_compiler.commands += -m3dnow -mmmx + } else { + mmx3dnow_compiler.commands += -m3dnow -mmmx + } +@@ -132,8 +134,9 @@ + sse3dnow_compiler.commands = $$QMAKE_CXX -c -Winline + + mac { +- sse3dnow_compiler.commands += -Xarch_i386 -m3dnow -Xarch_i386 -msse +- sse3dnow_compiler.commands += -Xarch_x86_64 -m3dnow -Xarch_x86_64 -msse ++# sse3dnow_compiler.commands += -Xarch_i386 -m3dnow -Xarch_i386 -msse ++# sse3dnow_compiler.commands += -Xarch_x86_64 -m3dnow -Xarch_x86_64 -msse ++ sse3dnow_compiler.commands += -m3dnow -msse + } else { + sse3dnow_compiler.commands += -m3dnow -msse + } +@@ -152,8 +155,10 @@ + sse_compiler.commands = $$QMAKE_CXX -c -Winline + + mac { +- sse_compiler.commands += -Xarch_i386 -msse +- sse_compiler.commands += -Xarch_x86_64 -msse ++# sse_compiler.commands += -Xarch_i386 -msse ++# sse_compiler.commands += -Xarch_x86_64 -msse ++ sse_compiler.commands += -msse ++ sse_compiler.commands += -msse + } else { + sse_compiler.commands += -msse + } +@@ -171,8 +176,10 @@ + sse2_compiler.commands = $$QMAKE_CXX -c -Winline + + mac { +- sse2_compiler.commands += -Xarch_i386 -msse2 +- sse2_compiler.commands += -Xarch_x86_64 -msse2 ++# sse2_compiler.commands += -Xarch_i386 -msse2 ++# sse2_compiler.commands += -Xarch_x86_64 -msse2 ++ sse2_compiler.commands += -msse2 ++ sse2_compiler.commands += -msse2 + } else { + sse2_compiler.commands += -msse2 + } +@@ -190,8 +197,10 @@ + ssse3_compiler.commands = $$QMAKE_CXX -c -Winline + + mac { +- ssse3_compiler.commands += -Xarch_i386 -mssse3 +- ssse3_compiler.commands += -Xarch_x86_64 -mssse3 ++# ssse3_compiler.commands += -Xarch_i386 -mssse3 ++# ssse3_compiler.commands += -Xarch_x86_64 -mssse3 ++ ssse3_compiler.commands += -mssse3 ++ ssse3_compiler.commands += -mssse3 + } else { + ssse3_compiler.commands += -mssse3 + } diff --git a/qt4.cmake b/qt4.cmake index d8028ba..2709550 100644 --- a/qt4.cmake +++ b/qt4.cmake @@ -9,7 +9,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8) include (ExternalProject) include (ExternalSource) include (BuildSupport) -#include (PatchSupport) +include (PatchSupport) # Using PATCH_EXE so this include should be here. include(zlib) include(libpng) @@ -17,11 +17,9 @@ include(libjpeg) include(libtiff) include(freetype2) -external_source (qt4 - 4.8.3 - qt-everywhere-opensource-src-4.8.3.tar.gz - a663b6c875f8d7caa8ac9c30e4a4ec3b - http://download.qt-project.org/official_releases/qt/4.8/4.8.3) +external_git_repo(qt4 + 4.8 #682ed9df439481e1f8e8651c4aa06f1b455a2080 + https://github.com/qtproject/qt) message ("Installing ${qt4_NAME} into FlyEM build area: ${BUILDEM_DIR} ...") @@ -42,11 +40,17 @@ endif() ExternalProject_Add(${qt4_NAME} DEPENDS ${freetype2_NAME} ${zlib_NAME} ${libpng_NAME} ${libjpeg_NAME} ${libtiff_NAME} PREFIX ${BUILDEM_DIR} - URL ${qt4_URL} - URL_MD5 ${qt4_MD5} + GIT_REPOSITORY ${qt4_URL} + GIT_TAG 4.8 UPDATE_COMMAND "" - PATCH_COMMAND "" - CONFIGURE_COMMAND ${BUILDEM_ENV_STRING} echo "yes" | ${qt4_SRC_DIR}/configure # pipe "yes" to stdin to accept the license. + PATCH_COMMAND ${BUILDEM_ENV_STRING} ${PATCH_EXE} + # This patch fixes ilastik crashes on OSX due to an ill-shaped ellipse + ${qt4_SRC_DIR}/src/gui/painting/qpaintengine_mac.cpp ${PATCH_DIR}/qt4-osx-draw-ellipse.patch + # This patch fixes removes Xarch_x86_64 flags from the Qt4 configure file. These flags are not appropriate for Mavericks and cause Qt4 to fail building. + ${qt4_SRC_DIR}/configure ${PATCH_DIR}/qt4-osx-mavericks-configure.patch + # This patch fixes removes Xarch_x86_64 flags from the Qt4 gui.pro file. These flags are not appropriate for Mavericks and cause Qt4 to fail building. + ${qt4_SRC_DIR}/src/gui/gui.pro ${PATCH_DIR}/qt4-osx-mavericks-gui-pro.patch + CONFIGURE_COMMAND ${BUILDEM_ENV_STRING} env CXXFLAGS=${BUILDEM_ADDITIONAL_CXX_FLAGS} echo "yes" | ${qt4_SRC_DIR}/configure # pipe "yes" to stdin to accept the license. --prefix=${BUILDEM_DIR} -opensource -arch x86_64 @@ -82,7 +86,7 @@ ExternalProject_Add(${qt4_NAME} -no-dbus -no-cups -no-nis - -no-accessibility # accessibility causes PyQt build issues on Ubuntu and Mavericks, but PySide can't build without it. + #-no-accessibility # Must include accessibility because PySide tries to build wrappers for it. -release -shared -fontconfig @@ -90,7 +94,7 @@ ExternalProject_Add(${qt4_NAME} -system-libpng -system-libjpeg -system-libtiff - -I${BUILDEM_DIR}/include + -I${BUILDEM_DIR}/include -I${BUILDEM_DIR}/include/freetype2 -L${BUILDEM_DIR}/lib ${EXTRA_QT4_CONFIG_FLAGS} BUILD_COMMAND ${BUILDEM_ENV_STRING} $(MAKE) @@ -98,7 +102,13 @@ ExternalProject_Add(${qt4_NAME} INSTALL_COMMAND ${BUILDEM_ENV_STRING} $(MAKE) install ) +if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") + ExternalProject_Add_Step(${qt4_NAME} ${qt4_NAME}-create-symlinks + COMMAND bash ${PATCH_DIR}/qt4-create-symlinks.sh ${BUILDEM_DIR} + DEPENDEES install + ) +endif() + set_target_properties(${qt4_NAME} PROPERTIES EXCLUDE_FROM_ALL ON) endif (NOT qt4_NAME) - From 67364898f2525b7ff7afcaeb6e7992d72b84ba47 Mon Sep 17 00:00:00 2001 From: Stuart Berg Date: Sat, 21 Jun 2014 11:43:55 -0400 Subject: [PATCH 32/62] vigra.cmake: Added cache variable for vigra thread implementation setting. --- vigra.cmake | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/vigra.cmake b/vigra.cmake index 430af11..86bb399 100644 --- a/vigra.cmake +++ b/vigra.cmake @@ -49,11 +49,15 @@ else() set(VIGRA_UPDATE_COMMAND git fetch origin && git checkout ${VIGRA_VERSION}) endif() + if (APPLE) - set(VIGRA_THREAD_SETTING "-DWITH_BOOST_THREAD=1") + set (DEFAULT_VIGRA_WITH_BOOST_THREAD 1) else() - set(VIGRA_THREAD_SETTING "") + set (DEFAULT_VIGRA_WITH_BOOST_THREAD 0) endif() +set(VIGRA_WITH_BOOST_THREAD ${DEFAULT_VIGRA_WITH_BOOST_THREAD} + CACHE BOOL "Build Vigra with boost-thread instead of std c++11 thread") +set(VIGRA_THREAD_SETTING "-DWITH_BOOST_THREAD=${VIGRA_WITH_BOOST_THREAD}") message ("Installing ${vigra_NAME}/${VIGRA_VERSION} into FlyEM build area: ${BUILDEM_DIR} ...") ExternalProject_Add(${vigra_NAME} From ab7c0bdc3e3c90217d14cceaf9ab9a9fc12b9912 Mon Sep 17 00:00:00 2001 From: Stuart Berg Date: Sat, 21 Jun 2014 11:46:44 -0400 Subject: [PATCH 33/62] vigra.cmake: FIXME: Skip vigra test step because it hangs on the janelia cluster. --- vigra.cmake | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vigra.cmake b/vigra.cmake index 86bb399..6cf2709 100644 --- a/vigra.cmake +++ b/vigra.cmake @@ -60,6 +60,9 @@ set(VIGRA_WITH_BOOST_THREAD ${DEFAULT_VIGRA_WITH_BOOST_THREAD} set(VIGRA_THREAD_SETTING "-DWITH_BOOST_THREAD=${VIGRA_WITH_BOOST_THREAD}") message ("Installing ${vigra_NAME}/${VIGRA_VERSION} into FlyEM build area: ${BUILDEM_DIR} ...") +message ("**********************************************************************************" +message ("***** WARNING: vigra test step SKIPPED for now. Edit vigra.cmake to change. *****") +message ("**********************************************************************************" ExternalProject_Add(${vigra_NAME} DEPENDS ${libjpeg_NAME} ${libtiff_NAME} ${libpng_NAME} ${openexr_NAME} ${libfftw_NAME} ${hdf5_NAME} ${python_NAME} ${boost_NAME} ${NUMPY_DEP} ${nose_NAME} @@ -124,7 +127,7 @@ ExternalProject_Add(${vigra_NAME} BUILD_COMMAND ${BUILDEM_ENV_STRING} $(MAKE) - TEST_COMMAND ${BUILDEM_ENV_STRING} $(MAKE) check + #TEST_COMMAND ${BUILDEM_ENV_STRING} $(MAKE) check INSTALL_COMMAND ${BUILDEM_ENV_STRING} $(MAKE) install ) From 6ce339423120cad9523490244db2e8df455b5ea8 Mon Sep 17 00:00:00 2001 From: Stuart Berg Date: Mon, 23 Jun 2014 08:40:31 -0400 Subject: [PATCH 34/62] vigra.cmake: Fixed syntax error in warning message. --- vigra.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vigra.cmake b/vigra.cmake index 6cf2709..fe76b9b 100644 --- a/vigra.cmake +++ b/vigra.cmake @@ -60,9 +60,9 @@ set(VIGRA_WITH_BOOST_THREAD ${DEFAULT_VIGRA_WITH_BOOST_THREAD} set(VIGRA_THREAD_SETTING "-DWITH_BOOST_THREAD=${VIGRA_WITH_BOOST_THREAD}") message ("Installing ${vigra_NAME}/${VIGRA_VERSION} into FlyEM build area: ${BUILDEM_DIR} ...") -message ("**********************************************************************************" +message ("**********************************************************************************") message ("***** WARNING: vigra test step SKIPPED for now. Edit vigra.cmake to change. *****") -message ("**********************************************************************************" +message ("**********************************************************************************") ExternalProject_Add(${vigra_NAME} DEPENDS ${libjpeg_NAME} ${libtiff_NAME} ${libpng_NAME} ${openexr_NAME} ${libfftw_NAME} ${hdf5_NAME} ${python_NAME} ${boost_NAME} ${NUMPY_DEP} ${nose_NAME} From ddafdf88a7399b344f7c7fb850c342ce131239e8 Mon Sep 17 00:00:00 2001 From: Stuart Berg Date: Mon, 23 Jun 2014 08:48:03 -0400 Subject: [PATCH 35/62] vigra.cmake: Updated default vigra version to today's commit. --- vigra.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vigra.cmake b/vigra.cmake index fe76b9b..7a9975c 100644 --- a/vigra.cmake +++ b/vigra.cmake @@ -31,7 +31,7 @@ endif() include (nose) # select the desired VIGRA commit -set(DEFAULT_VIGRA_VERSION "4fe15e890e0252f2fb2b38552d321d43f32c07b5") # from 2014-05-23 +set(DEFAULT_VIGRA_VERSION "fb83cf8a595a36285980bd563c90e5d666bce388") # from 2014-06-23 IF(NOT DEFINED VIGRA_VERSION) SET(VIGRA_VERSION "${DEFAULT_VIGRA_VERSION}") ENDIF() From f49cb600990dd38282b5ee350e98a5a8c5a5a4e5 Mon Sep 17 00:00:00 2001 From: Bill Katz Date: Mon, 23 Jun 2014 12:58:58 -0400 Subject: [PATCH 36/62] Upgrade to Go 1.3 --- golang.cmake | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/golang.cmake b/golang.cmake index 56fe42a..b18240c 100644 --- a/golang.cmake +++ b/golang.cmake @@ -11,10 +11,10 @@ include (ExternalSource) include (BuildSupport) external_source (golang - 1.2.1 - go1.2.1.src.tar.gz - 6232fa4417004fc9dde823ad1eaf597c - http://go.googlecode.com/files) + 1.3 + go1.3.src.tar.gz + 4b66d7249554181c314f139ea78920b1 + http://golang.org/dl) message ("Installing ${golang_NAME} into build area: ${BUILDEM_DIR} ...") ExternalProject_Add(${golang_NAME} From 23a7069c6ef405223a55fcd0cafb7a1324053415 Mon Sep 17 00:00:00 2001 From: Bill Katz Date: Mon, 23 Jun 2014 14:36:34 -0400 Subject: [PATCH 37/62] Remove compiler specification due to weird Mavericks issues --- BuildSupport.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BuildSupport.cmake b/BuildSupport.cmake index d8a1f71..b0fd0b1 100644 --- a/BuildSupport.cmake +++ b/BuildSupport.cmake @@ -64,7 +64,7 @@ endif() # Initialize environment variables string to use for commands. set (BUILDEM_BIN_PATH ${BUILDEM_BIN_DIR}:$ENV{PATH}) set (BUILDEM_LIB_PATH ${BUILDEM_LIB_DIR}:$ENV{${BUILDEM_LD_LIBRARY_VAR}}) -set (BUILDEM_ENV_STRING env PATH=${BUILDEM_BIN_PATH} ${BUILDEM_LD_LIBRARY_VAR}=${BUILDEM_LIB_PATH} ${BUILDEM_PLATFORM_SPECIFIC_ENV} CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER}) +set (BUILDEM_ENV_STRING env PATH=${BUILDEM_BIN_PATH} ${BUILDEM_LD_LIBRARY_VAR}=${BUILDEM_LIB_PATH} ${BUILDEM_PLATFORM_SPECIFIC_ENV}) set (BUILDEM_LDFLAGS "-Wl,-rpath,${BUILDEM_LIB_DIR} -L${BUILDEM_LIB_DIR}") # All library builds should go to BPD/lib From 863708fdfd47ee1c4528532f3ef2e85f87fcf7b0 Mon Sep 17 00:00:00 2001 From: Stuart Berg Date: Tue, 24 Jun 2014 11:42:22 -0400 Subject: [PATCH 38/62] blas.cmake: Changed default to WITH_ATLAS=1, since openblas can be tricky to build in many cases: - janelia cluster - mac os x - compatibility issues with projects that use OpenMP --- blas.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blas.cmake b/blas.cmake index f26d0a7..be1e7ff 100644 --- a/blas.cmake +++ b/blas.cmake @@ -1,7 +1,7 @@ # select the desired blas implementation IF(NOT DEFINED WITH_ATLAS) - SET(WITH_ATLAS "OFF") + SET(WITH_ATLAS 1) ENDIF() SET(WITH_ATLAS ${WITH_ATLAS} CACHE BOOL "Use ATLAS (WITH_ATLAS=1) or openBLAS (WITH_ATLAS=0) ?" From ff9fc37436d83a10b60cbd88ac02a3f9b8b204f0 Mon Sep 17 00:00:00 2001 From: Carsten Haubold Date: Tue, 1 Jul 2014 10:22:28 +0200 Subject: [PATCH 39/62] fix python path and lzma dependencies as well as cplex library building --- cplex-shared.cmake | 12 +++++++++--- libxml2.cmake | 1 + pyqt4.cmake | 2 +- qimage2ndarray.cmake | 4 ++-- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/cplex-shared.cmake b/cplex-shared.cmake index ad455a8..cf28ded 100644 --- a/cplex-shared.cmake +++ b/cplex-shared.cmake @@ -25,9 +25,15 @@ set(CPLEX_ILOCPLEX_LIBRARY CPLEX_ILOCPLEX_LIBRARY-NOTFOUND) find_package( Cplex REQUIRED ) if (APPLE) - set(SHARED_CPLEX_COMPILE_FLAGS "-fpic -stdlib=libstdc++") - set(SHARED_CPLEX_LINK_FLAGS_1 "-Wl,-all_load") - set(SHARED_CPLEX_LINK_FLAGS_2 "-stdlib=libstdc++") + if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") + set(SHARED_CPLEX_COMPILE_FLAGS "-fpic -stdlib=libstdc++") + set(SHARED_CPLEX_LINK_FLAGS_1 "-Wl,-all_load") + set(SHARED_CPLEX_LINK_FLAGS_2 "-stdlib=libstdc++") + else() + set(SHARED_CPLEX_COMPILE_FLAGS "-fpic") + set(SHARED_CPLEX_LINK_FLAGS_1 "-Wl,-all_load") + set(SHARED_CPLEX_LINK_FLAGS_2 "") + endif() else() set(SHARED_CPLEX_COMPILE_FLAGS "-shared -fpic") set(SHARED_CPLEX_LINK_FLAGS_1 "-Wl,-whole-archive") diff --git a/libxml2.cmake b/libxml2.cmake index 1fe8022..5cf43fe 100644 --- a/libxml2.cmake +++ b/libxml2.cmake @@ -32,6 +32,7 @@ if (NOT libxml2_NAME) --prefix=${BUILDEM_DIR} --enable-shared --without-python + --without-lzma --with-sax1 LDFLAGS=${BUILDEM_LDFLAGS} CPPFLAGS=-I${BUILDEM_DIR}/include diff --git a/pyqt4.cmake b/pyqt4.cmake index 46b360e..6b25b8e 100644 --- a/pyqt4.cmake +++ b/pyqt4.cmake @@ -49,7 +49,7 @@ ExternalProject_Add(${pyqt4_NAME} URL_MD5 ${pyqt4_MD5} UPDATE_COMMAND "" PATCH_COMMAND "" - CONFIGURE_COMMAND ${BUILDEM_ENV_STRING} ${PYTHON_EXE} ${pyqt4_SRC_DIR}/configure.py + CONFIGURE_COMMAND ${BUILDEM_ENV_STRING} PYTHONPATH=${BUILDEM_PYTHONPATH} ${PYTHON_EXE} ${pyqt4_SRC_DIR}/configure.py --confirm-license --verbose -q "${BUILDEM_DIR}/bin/qmake" diff --git a/qimage2ndarray.cmake b/qimage2ndarray.cmake index 6d3ea1b..2400ea8 100644 --- a/qimage2ndarray.cmake +++ b/qimage2ndarray.cmake @@ -32,8 +32,8 @@ ExternalProject_Add(${qimage2ndarray_NAME} PATCH_COMMAND "" LIST_SEPARATOR ^^ CONFIGURE_COMMAND "" - BUILD_COMMAND ${BUILDEM_ENV_STRING} ${PYTHON_EXE} ${qimage2ndarray_SRC_DIR}/setup.py build - INSTALL_COMMAND ${BUILDEM_ENV_STRING} ${PYTHON_EXE} ${qimage2ndarray_SRC_DIR}/setup.py install --prefix=${PYTHON_PREFIX} + BUILD_COMMAND ${BUILDEM_ENV_STRING} PYTHONPATH=${BUILDEM_PYTHONPATH} ${PYTHON_EXE} ${qimage2ndarray_SRC_DIR}/setup.py build + INSTALL_COMMAND ${BUILDEM_ENV_STRING} PYTHONPATH=${BUILDEM_PYTHONPATH} ${PYTHON_EXE} ${qimage2ndarray_SRC_DIR}/setup.py install --prefix=${PYTHON_PREFIX} BUILD_IN_SOURCE 1 ) From 190ac3ff0a449b0a8ac8640018297176d16c19be Mon Sep 17 00:00:00 2001 From: Carsten Haubold Date: Tue, 1 Jul 2014 11:19:38 +0200 Subject: [PATCH 40/62] Revert "Remove compiler specification due to weird Mavericks issues" This reverts commit 23a7069c6ef405223a55fcd0cafb7a1324053415. --- BuildSupport.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BuildSupport.cmake b/BuildSupport.cmake index b0fd0b1..d8a1f71 100644 --- a/BuildSupport.cmake +++ b/BuildSupport.cmake @@ -64,7 +64,7 @@ endif() # Initialize environment variables string to use for commands. set (BUILDEM_BIN_PATH ${BUILDEM_BIN_DIR}:$ENV{PATH}) set (BUILDEM_LIB_PATH ${BUILDEM_LIB_DIR}:$ENV{${BUILDEM_LD_LIBRARY_VAR}}) -set (BUILDEM_ENV_STRING env PATH=${BUILDEM_BIN_PATH} ${BUILDEM_LD_LIBRARY_VAR}=${BUILDEM_LIB_PATH} ${BUILDEM_PLATFORM_SPECIFIC_ENV}) +set (BUILDEM_ENV_STRING env PATH=${BUILDEM_BIN_PATH} ${BUILDEM_LD_LIBRARY_VAR}=${BUILDEM_LIB_PATH} ${BUILDEM_PLATFORM_SPECIFIC_ENV} CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER}) set (BUILDEM_LDFLAGS "-Wl,-rpath,${BUILDEM_LIB_DIR} -L${BUILDEM_LIB_DIR}") # All library builds should go to BPD/lib From a9e9c8e25ff2964e837099a765000164a4147f34 Mon Sep 17 00:00:00 2001 From: Carsten Haubold Date: Mon, 7 Jul 2014 10:26:32 +0200 Subject: [PATCH 41/62] boost: on OSX using GCC, add the gcc toolchain to the configuration --- boost.cmake | 8 ++++++++ patches/boost-osx-gcc-fix-config.sh | 11 +++++++++++ 2 files changed, 19 insertions(+) create mode 100644 patches/boost-osx-gcc-fix-config.sh diff --git a/boost.cmake b/boost.cmake index 0eda2d8..4f238e4 100644 --- a/boost.cmake +++ b/boost.cmake @@ -60,6 +60,14 @@ ExternalProject_Add(${boost_NAME} -sZLIB_SOURCE=${zlib_SRC_DIR} install ) +if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin" AND "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") + ExternalProject_Add_Step(${boost_NAME} osx-gcc-fix-config + COMMAND bash ${PATCH_DIR}/boost-osx-gcc-fix-config.sh ${boost_SRC_DIR} ${CMAKE_CXX_COMPILER} + DEPENDERS configure + DEPENDEES patch + ) +endif() + set_target_properties(${boost_NAME} PROPERTIES EXCLUDE_FROM_ALL ON) endif (NOT boost_NAME) diff --git a/patches/boost-osx-gcc-fix-config.sh b/patches/boost-osx-gcc-fix-config.sh new file mode 100644 index 0000000..7303c70 --- /dev/null +++ b/patches/boost-osx-gcc-fix-config.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +BOOST_SRC_DIR=$1 +CXX_COMPILER=$2 +CXX_COMPILER_VERSION=`$2 -dumpversion | sed -e 's/\.[0-9]$//g'` + +echo "Configuring Boost to compile with ${CXX_COMPILER}" + +echo "" >> ${BOOST_SRC_DIR}/tools/build/v2/user-config.jam +echo "using darwin : ${CXX_COMPILER_VERSION} : ${CXX_COMPILER} ;" >> ${BOOST_SRC_DIR}/tools/build/v2/user-config.jam +echo "" >> ${BOOST_SRC_DIR}/tools/build/v2/user-config.jam \ No newline at end of file From 7f41c21a34061adf6931240b364a0885c7470d8b Mon Sep 17 00:00:00 2001 From: Carsten Haubold Date: Mon, 7 Jul 2014 13:19:09 +0200 Subject: [PATCH 42/62] Fix building python 2.7.6 on OSX 10.9 with GCC by not building PythonLauncher --- patches/python-no-osx-launcher.patch | 20 ++++++++++++++++++++ python.cmake | 6 +++++- 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 patches/python-no-osx-launcher.patch diff --git a/patches/python-no-osx-launcher.patch b/patches/python-no-osx-launcher.patch new file mode 100644 index 0000000..938aea0 --- /dev/null +++ b/patches/python-no-osx-launcher.patch @@ -0,0 +1,20 @@ +--- Makefile.in_orig 2014-07-07 13:03:29.000000000 +0200 ++++ Makefile.in 2014-07-07 13:04:10.000000000 +0200 +@@ -144,7 +144,7 @@ + $(CC) $(LDFLAGS) -DPYTHONFRAMEWORK='"$(PYTHONFRAMEWORK)"' -o $@ $(srcdir)/Tools/pythonw.c -I.. -I$(srcdir)/../Include ../$(PYTHONFRAMEWORK).framework/Versions/$(VERSION)/$(PYTHONFRAMEWORK) + + install_PythonLauncher: +- cd PythonLauncher && make install DESTDIR=$(DESTDIR) ++ #cd PythonLauncher && make install DESTDIR=$(DESTDIR) + + install_Python: + @for i in "$(PYTHONAPPSDIR)" "$(APPINSTALLDIR)" "$(APPINSTALLDIR)/Contents"; do \ +@@ -299,7 +299,7 @@ + + clean: + rm pythonw +- cd PythonLauncher && make clean ++ #cd PythonLauncher && make clean + cd IDLE && make clean + + Makefile: $(srcdir)/Makefile.in ../config.status diff --git a/python.cmake b/python.cmake index 0e19b47..fbc66eb 100644 --- a/python.cmake +++ b/python.cmake @@ -12,6 +12,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8) include (ExternalProject) include (ExternalSource) include (BuildSupport) +include (PatchSupport) include (zlib) include (openssl) # without openssl, hashlib might have missing encryption methods @@ -53,7 +54,10 @@ ExternalProject_Add(${python_NAME} URL ${python_URL} URL_MD5 ${python_MD5} UPDATE_COMMAND "" - PATCH_COMMAND "" + PATCH_COMMAND ${BUILDEM_ENV_STRING} ${PATCH_EXE} + # When building python 2.7.6 on OSX 10.9 with GCC, building the launcher fails due to some 10.9 SDK specific headers not present in GCC. + # As we do not need the launcher anyway, refrain from building it. + ${python_SRC_DIR}/Mac/Makefile.in ${PATCH_DIR}/python-no-osx-launcher.patch CONFIGURE_COMMAND ${BUILDEM_ENV_STRING} ${python_SRC_DIR}/configure --prefix=${BUILDEM_DIR} ${PYTHON_BINARY_TYPE_ARG} From bc9699bb94afdb527068255dfa23129045f54d53 Mon Sep 17 00:00:00 2001 From: Carsten Haubold Date: Thu, 3 Jul 2014 08:58:27 +0200 Subject: [PATCH 43/62] Add headerpad_max_install_names flag to h5py so it can be packaged on OSX --- h5py.cmake | 5 ++++- patches/h5py.patch | 15 +++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 patches/h5py.patch diff --git a/h5py.cmake b/h5py.cmake index acfd8ec..6dce866 100644 --- a/h5py.cmake +++ b/h5py.cmake @@ -9,6 +9,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8) include (ExternalProject) include (ExternalSource) include (BuildSupport) +include (PatchSupport) include (python) include (hdf5) @@ -27,7 +28,9 @@ ExternalProject_Add(${h5py_NAME} URL ${h5py_URL} URL_MD5 ${h5py_MD5} UPDATE_COMMAND "" - PATCH_COMMAND "" + PATCH_COMMAND ${BUILDEM_ENV_STRING} ${PATCH_EXE} + # This patch adds a linker flag on linux to allow for packaging executables + ${h5py_SRC_DIR}/setup.py ${PATCH_DIR}/h5py.patch CONFIGURE_COMMAND "" BUILD_COMMAND ${BUILDEM_ENV_STRING} ${PYTHON_EXE} setup.py build --hdf5=${BUILDEM_DIR} diff --git a/patches/h5py.patch b/patches/h5py.patch new file mode 100644 index 0000000..495d86e --- /dev/null +++ b/patches/h5py.patch @@ -0,0 +1,15 @@ +--- setup.py 2013-04-22 21:51:24.000000000 +0200 ++++ setup_fixed.py 2014-07-03 08:47:44.000000000 +0200 +@@ -68,8 +68,12 @@ + elif sys.platform == 'darwin': + COMPILER_SETTINGS['include_dirs'] += ['/opt/local/include'] + COMPILER_SETTINGS['library_dirs'] += ['/opt/local/lib'] ++ if sys.platform == 'darwin': ++ COMPILER_SETTINGS['extra_link_args'] = ['-Xlinker','-headerpad_max_install_names'] ++ + COMPILER_SETTINGS['runtime_library_dirs'] = [op.abspath(x) for x in COMPILER_SETTINGS['library_dirs']] + ++ + MODULES = ['defs','_errors','_objects','_proxy', 'h5fd', 'h5z', + 'h5','h5i','h5r','utils', + '_conv', 'h5t','h5s', From 44aa2fa00b09cc85b716a39fc61f5b4a981e99ad Mon Sep 17 00:00:00 2001 From: Carsten Haubold Date: Mon, 7 Jul 2014 15:04:15 +0200 Subject: [PATCH 44/62] When building VTK on OSX using GCC, do not use the flag -fpascal-strings --- patches/vtk-gcc-osx-pascal-strings.patch | 11 +++++++++++ vtk.cmake | 9 +++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 patches/vtk-gcc-osx-pascal-strings.patch diff --git a/patches/vtk-gcc-osx-pascal-strings.patch b/patches/vtk-gcc-osx-pascal-strings.patch new file mode 100644 index 0000000..becaa93 --- /dev/null +++ b/patches/vtk-gcc-osx-pascal-strings.patch @@ -0,0 +1,11 @@ +--- CMakeLists_orig.txt 2014-07-07 14:45:52.000000000 +0200 ++++ CMakeLists.txt 2014-07-07 14:46:14.000000000 +0200 +@@ -117,7 +117,7 @@ + # + IF (APPLE) + IF(CMAKE_COMPILER_IS_GNUCXX) +- SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated -fpascal-strings") ++ SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated") + ENDIF(CMAKE_COMPILER_IS_GNUCXX) + ENDIF (APPLE) + diff --git a/vtk.cmake b/vtk.cmake index 56a04ed..ae86b73 100644 --- a/vtk.cmake +++ b/vtk.cmake @@ -9,7 +9,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8) include (ExternalProject) include (ExternalSource) include (BuildSupport) -#include (PatchSupport) +include (PatchSupport) include (python) include (qt4) @@ -33,6 +33,11 @@ message ("Installing ${vtk_NAME} into FlyEM build area: ${BUILDEM_DIR} ...") set (vtk_LIBPATH ${BUILDEM_DIR}/lib/vtk-5.10) include_directories (${BUILDEM_DIR}/include/vtk-5.10) +if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin" AND "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") + # if we compile on OSX with a non-apple compiler, then we need to remove the apple specific flags "-fpascal-strings" + SET(VTK_PATCHES ${BUILDEM_ENV_STRING} ${PATCH_EXE} ${vtk_SRC_DIR}/Utilities/ftgl/CMakeLists.txt ${PATCH_DIR}/vtk-gcc-osx-pascal-strings.patch) +endif() + ExternalProject_Add(${vtk_NAME} DEPENDS ${python_NAME} ${qt4_NAME} ${sip_NAME} ${pyqt4_NAME} ${libxml2_NAME} ${libpng_NAME} ${libjpeg_NAME} ${libtiff_NAME} ${zlib_NAME} @@ -40,7 +45,7 @@ ExternalProject_Add(${vtk_NAME} URL ${vtk_URL} URL_MD5 ${vtk_MD5} UPDATE_COMMAND "" - PATCH_COMMAND "" + PATCH_COMMAND ${VTK_PATCHES} CONFIGURE_COMMAND ${BUILDEM_ENV_STRING} ${CMAKE_COMMAND} ${vtk_SRC_DIR} -DCMAKE_INSTALL_PREFIX=${BUILDEM_DIR} -DBUILD_SHARED_LIBS:BOOL=ON From eab7c74551b50d334afb47bfe9b1e25db466d5a7 Mon Sep 17 00:00:00 2001 From: Carsten Haubold Date: Mon, 7 Jul 2014 17:24:58 +0200 Subject: [PATCH 45/62] Add pythonpath to buildem_env_string as soon as python is installed to prevent later packages from using system-python --- python.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python.cmake b/python.cmake index fbc66eb..659276e 100644 --- a/python.cmake +++ b/python.cmake @@ -81,7 +81,7 @@ set (BUILDEM_BIN_PATH ${PYTHON_PREFIX}/bin:${BUILDEM_BIN_PATH}) # Append our revised bin PATH variable to ENV string. # (This means that PATH will be specified TWICE in the env string, but the second one takes precedence.) -set (BUILDEM_ENV_STRING env ${BUILDEM_ENV_STRING} PATH=${BUILDEM_BIN_PATH}) +set (BUILDEM_ENV_STRING env ${BUILDEM_ENV_STRING} PATH=${BUILDEM_BIN_PATH} PYTHONPATH=${BUILDEM_PYTHONPATH}) set_target_properties(${python_NAME} PROPERTIES EXCLUDE_FROM_ALL ON) From d6889cf601fbcb43617d2cce75e96cccb3e5cd4b Mon Sep 17 00:00:00 2001 From: Carsten Haubold Date: Tue, 8 Jul 2014 15:53:57 +0200 Subject: [PATCH 46/62] Use the OSX_DEPLOYMENT_TARGET that was set by the user, 10.5 only as default --- BuildSupport.cmake | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/BuildSupport.cmake b/BuildSupport.cmake index d8a1f71..cd9376a 100644 --- a/BuildSupport.cmake +++ b/BuildSupport.cmake @@ -53,7 +53,11 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") # Important to use FALLBACK variable. # https://developer.apple.com/library/mac/#documentation/DeveloperTools/Conceptual/DynamicLibraries/100-Articles/DynamicLibraryUsageGuidelines.html set (BUILDEM_LD_LIBRARY_VAR "DYLD_FALLBACK_LIBRARY_PATH") - set (BUILDEM_PLATFORM_SPECIFIC_ENV "MACOSX_DEPLOYMENT_TARGET=10.5") + if(${CMAKE_OSX_DEPLOYMENT_TARGET}) + set (BUILDEM_PLATFORM_SPECIFIC_ENV "MACOSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET}") + else() + set (BUILDEM_PLATFORM_SPECIFIC_ENV "MACOSX_DEPLOYMENT_TARGET=10.5") + endif() set (BUILDEM_PLATFORM_DYLIB_EXTENSION "dylib") else() set (BUILDEM_LD_LIBRARY_VAR "LD_LIBRARY_PATH") From e304817a8e3a6844d9a92e9ca29fadd76eb2444f Mon Sep 17 00:00:00 2001 From: "Carsten Haubold (IWR)" Date: Mon, 7 Jul 2014 14:45:23 +0200 Subject: [PATCH 47/62] Add hints to find cplex on ubuntu --- FindCplex.cmake | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/FindCplex.cmake b/FindCplex.cmake index efa8d0c..f28a858 100644 --- a/FindCplex.cmake +++ b/FindCplex.cmake @@ -88,6 +88,7 @@ FIND_LIBRARY(CPLEX_LIBRARY HINTS ${CPLEX_ROOT_DIR}/cplex/lib/${CPLEX_WIN_PLATFORM} #windows ${CPLEX_ROOT_DIR}/cplex/lib/x86-64_debian4.0_4.1/static_pic #unix ${CPLEX_ROOT_DIR}/cplex/lib/x86-64_sles10_4.1/static_pic #unix + ${CPLEX_ROOT_DIR}/cplex/lib/x86-64_linux/static_pic #unix ${CPLEX_ROOT_DIR}/cplex/lib/x86-64_osx/static_pic #osx ${CPLEX_ROOT_DIR}/cplex/lib/x86-64_darwin/static_pic #osx PATHS ENV LIBRARY_PATH #unix @@ -100,6 +101,7 @@ FIND_LIBRARY(CPLEX_ILOCPLEX_LIBRARY HINTS ${CPLEX_ROOT_DIR}/cplex/lib/${CPLEX_WIN_PLATFORM} #windows ${CPLEX_ROOT_DIR}/cplex/lib/x86-64_debian4.0_4.1/static_pic #unix ${CPLEX_ROOT_DIR}/cplex/lib/x86-64_sles10_4.1/static_pic #unix + ${CPLEX_ROOT_DIR}/cplex/lib/x86-64_linux/static_pic #unix ${CPLEX_ROOT_DIR}/cplex/lib/x86-64_osx/static_pic #osx ${CPLEX_ROOT_DIR}/cplex/lib/x86-64_darwin/static_pic #osx PATHS ENV LIBRARY_PATH @@ -112,6 +114,7 @@ FIND_LIBRARY(CPLEX_CONCERT_LIBRARY HINTS ${CPLEX_ROOT_DIR}/concert/lib/${CPLEX_WIN_PLATFORM} #windows ${CPLEX_ROOT_DIR}/concert/lib/x86-64_debian4.0_4.1/static_pic #unix ${CPLEX_ROOT_DIR}/concert/lib/x86-64_sles10_4.1/static_pic #unix + ${CPLEX_ROOT_DIR}/concert/lib/x86-64_linux/static_pic #unix ${CPLEX_ROOT_DIR}/concert/lib/x86-64_osx/static_pic #osx ${CPLEX_ROOT_DIR}/concert/lib/x86-64_darwin/static_pic #osx PATHS ENV LIBRARY_PATH @@ -129,6 +132,7 @@ else() cplex HINTS ${CPLEX_ROOT_DIR}/cplex/bin/x86-64_sles10_4.1 #unix ${CPLEX_ROOT_DIR}/cplex/bin/x86-64_debian4.0_4.1 #unix + ${CPLEX_ROOT_DIR}/cplex/bin/x86-64_linux #unix ${CPLEX_ROOT_DIR}/cplex/bin/x86-64_osx #osx ${CPLEX_ROOT_DIR}/cplex/bin/x86-64_darwin #osx ENV LIBRARY_PATH From 9c22f148595a4eb7b29d410aed602c0d585bb849 Mon Sep 17 00:00:00 2001 From: "Carsten Haubold (IWR)" Date: Mon, 7 Jul 2014 14:45:53 +0200 Subject: [PATCH 48/62] Do not build openssl docs, perl script broken on ubuntu 14.04 --- openssl.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openssl.cmake b/openssl.cmake index 5637396..76968f2 100644 --- a/openssl.cmake +++ b/openssl.cmake @@ -44,7 +44,7 @@ ExternalProject_Add(${openssl_NAME} BUILD_COMMAND ${BUILDEM_ENV_STRING} $(MAKE) -j1 # Parallel builds on openssl are thoroughly broken. Force -j1 BUILD_IN_SOURCE 1 TEST_COMMAND ${BUILDEM_ENV_STRING} $(MAKE) -j1 test - INSTALL_COMMAND ${BUILDEM_ENV_STRING} $(MAKE) -j1 install + INSTALL_COMMAND ${BUILDEM_ENV_STRING} $(MAKE) -j1 install_sw ) set_target_properties(${openssl_NAME} PROPERTIES EXCLUDE_FROM_ALL ON) From 373cb73a0b0fcd607a20273c23eefe00f487692e Mon Sep 17 00:00:00 2001 From: "Carsten Haubold (IWR)" Date: Tue, 8 Jul 2014 10:30:34 +0200 Subject: [PATCH 49/62] Add boost_random --- boost.cmake | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/boost.cmake b/boost.cmake index 4f238e4..25c4ffa 100644 --- a/boost.cmake +++ b/boost.cmake @@ -29,6 +29,7 @@ set (boost_LIBS ${BUILDEM_LIB_DIR}/libboost_thread.${BUILDEM_PLATFORM_DYLIB_EXTE ${BUILDEM_LIB_DIR}/libboost_unit_test_framework.${BUILDEM_PLATFORM_DYLIB_EXTENSION} ${BUILDEM_LIB_DIR}/libboost_filesystem.${BUILDEM_PLATFORM_DYLIB_EXTENSION} ${BUILDEM_LIB_DIR}/libboost_chrono.${BUILDEM_PLATFORM_DYLIB_EXTENSION} + ${BUILDEM_LIB_DIR}/libboost_random.${BUILDEM_PLATFORM_DYLIB_EXTENSION} ${BUILDEM_LIB_DIR}/libboost_atomic.${BUILDEM_PLATFORM_DYLIB_EXTENSION} ) # Add layout=tagged param to first boost install to explicitly create -mt libraries @@ -43,7 +44,7 @@ ExternalProject_Add(${boost_NAME} UPDATE_COMMAND "" PATCH_COMMAND "" CONFIGURE_COMMAND ${BUILDEM_ENV_STRING} ./bootstrap.sh - --with-libraries=date_time,filesystem,python,regex,serialization,system,test,thread,program_options,chrono,atomic + --with-libraries=date_time,filesystem,python,regex,serialization,system,test,thread,program_options,chrono,atomic,random --with-python=${PYTHON_EXE} --prefix=${BUILDEM_DIR} LDFLAGS=${BUILDEM_LDFLAGS} From 2ed4e5dd426a9a06d74a385c73b4acd2e1778341 Mon Sep 17 00:00:00 2001 From: "Carsten Haubold (IWR)" Date: Tue, 8 Jul 2014 10:31:04 +0200 Subject: [PATCH 50/62] Newer GCCs do not know the -R flag, so remove it from setup.py --- h5py.cmake | 2 ++ patches/h5py-no-runtime.patch | 12 ++++++++++++ 2 files changed, 14 insertions(+) create mode 100644 patches/h5py-no-runtime.patch diff --git a/h5py.cmake b/h5py.cmake index 6dce866..15e7b31 100644 --- a/h5py.cmake +++ b/h5py.cmake @@ -31,6 +31,8 @@ ExternalProject_Add(${h5py_NAME} PATCH_COMMAND ${BUILDEM_ENV_STRING} ${PATCH_EXE} # This patch adds a linker flag on linux to allow for packaging executables ${h5py_SRC_DIR}/setup.py ${PATCH_DIR}/h5py.patch + # do not specify a runtime path for the library, -R flag is unknown to newer GCCs + ${h5py_SRC_DIR}/setup.py ${PATCH_DIR}/h5py-no-runtime.patch CONFIGURE_COMMAND "" BUILD_COMMAND ${BUILDEM_ENV_STRING} ${PYTHON_EXE} setup.py build --hdf5=${BUILDEM_DIR} diff --git a/patches/h5py-no-runtime.patch b/patches/h5py-no-runtime.patch new file mode 100644 index 0000000..2563c68 --- /dev/null +++ b/patches/h5py-no-runtime.patch @@ -0,0 +1,12 @@ +--- setup_orig.py 2014-07-08 10:27:37.801713517 +0200 ++++ setup.py 2014-07-08 10:27:49.861713854 +0200 +@@ -71,9 +71,6 @@ + if sys.platform == 'darwin': + COMPILER_SETTINGS['extra_link_args'] = ['-Xlinker','-headerpad_max_install_names'] + +- COMPILER_SETTINGS['runtime_library_dirs'] = [op.abspath(x) for x in COMPILER_SETTINGS['library_dirs']] +- +- + MODULES = ['defs','_errors','_objects','_proxy', 'h5fd', 'h5z', + 'h5','h5i','h5r','utils', + '_conv', 'h5t','h5s', From 0f84919ff80956bc560a117c40354fe49882d1e5 Mon Sep 17 00:00:00 2001 From: mschiegg Date: Fri, 4 Jul 2014 13:34:07 +0200 Subject: [PATCH 51/62] add armadillo cmake file --- armadillo.cmake | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 armadillo.cmake diff --git a/armadillo.cmake b/armadillo.cmake new file mode 100644 index 0000000..bb9a3ba --- /dev/null +++ b/armadillo.cmake @@ -0,0 +1,48 @@ +# +# Install armadillo from source +# + +if (NOT armadillo_NAME) + +CMAKE_MINIMUM_REQUIRED(VERSION 2.8) + +include (ExternalProject) +include (ExternalSource) +include (BuildSupport) +include (PatchSupport) + +include (blas) + + +external_source (armadillo + 4.000.2 + armadillo-4.000.2.tar.gz + b2891c7b59b96337c154c5d961fd40fb + http://downloads.sourceforge.net/project/arma + "FORCE" + ) + +message ("Installing ${armadillo_NAME} into FlyEM build area: ${BUILDEM_DIR} ...") +ExternalProject_Add(${armadillo_NAME} + DEPENDS ${lapack_NAME} ${blas_NAME} + PREFIX ${BUILDEM_DIR} + URL ${armadillo_URL} + URL_MD5 ${armadillo_MD5} + UPDATE_COMMAND "" + PATCH_COMMAND ${BUILDEM_ENV_STRING} ${PATCH_EXE} + ${armadillo_SRC_DIR}/include/armadillo_bits/config.hpp + ${PATCH_DIR}/armadillo.patch + + + CONFIGURE_COMMAND ${BUILDEM_ENV_STRING} ${CMAKE_COMMAND} ${armadillo_SRC_DIR} + -DBUILD_SHARED_LIBS=ON + -DCMAKE_INSTALL_PREFIX=${BUILDEM_DIR} + -DCMAKE_PREFIX_PATH=${BUILDEM_DIR} + + BUILD_COMMAND ${BUILDEM_ENV_STRING} make + INSTALL_COMMAND ${BUILDEM_ENV_STRING} make install +) + +set_target_properties(${armadillo_NAME} PROPERTIES EXCLUDE_FROM_ALL ON) + +endif (NOT armadillo_NAME) From 8956cac371962980cfe384717069a53d07ef981a Mon Sep 17 00:00:00 2001 From: mschiegg Date: Fri, 4 Jul 2014 13:34:28 +0200 Subject: [PATCH 52/62] add mlpack cmake file --- mlpack.cmake | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 mlpack.cmake diff --git a/mlpack.cmake b/mlpack.cmake new file mode 100644 index 0000000..560124f --- /dev/null +++ b/mlpack.cmake @@ -0,0 +1,50 @@ +# +# Install mlpack from source +# + +if (NOT mlpack_NAME) + +CMAKE_MINIMUM_REQUIRED(VERSION 2.8) + +include (ExternalProject) +include (ExternalSource) +include (BuildSupport) +include (PatchSupport) + +include (armadillo) +include (boost) +include (libxml2) + + +external_source (mlpack + 1.0.8 + mlpack-1.0.8.tar.gz + 0331e12f2485b9d5d39c9d9dea618108 + http://www.mlpack.org/files + "FORCE") + +message ("Installing ${mlpack_NAME} into FlyEM build area: ${BUILDEM_DIR} ...") +ExternalProject_Add(${mlpack_NAME} + DEPENDS ${armadillo_NAME} ${boost_NAME} ${libxml2_NAME} + PREFIX ${BUILDEM_DIR} + URL ${mlpack_URL} + URL_MD5 ${mlpack_MD5} + UPDATE_COMMAND "" + + + CONFIGURE_COMMAND ${BUILDEM_ENV_STRING} ${CMAKE_COMMAND} ${mlpack_SRC_DIR} + -DBUILD_SHARED_LIBS=ON + -DCMAKE_CXX_FLAGS=${BUILDEM_ADDITIONAL_CXX_FLAGS} + -DCMAKE_INSTALL_PREFIX=${BUILDEM_DIR} + -DCMAKE_PREFIX_PATH=${BUILDEM_DIR} + -DLIBXML2_INCLUDE_DIR=${BUILDEM_DIR}/include/libxml2 + + + BUILD_COMMAND ${BUILDEM_ENV_STRING} make + INSTALL_COMMAND ${BUILDEM_ENV_STRING} make install + # TEST_COMMAND ${BUILDEM_ENV_STRING} make test +) + +set_target_properties(${mlpack_NAME} PROPERTIES EXCLUDE_FROM_ALL ON) + +endif (NOT mlpack_NAME) From 554aa4a65703dee7a387ce0e77811a79a3b45118 Mon Sep 17 00:00:00 2001 From: mschiegg Date: Fri, 4 Jul 2014 13:34:45 +0200 Subject: [PATCH 53/62] add armadillo patch to configure dependencies --- patches/armadillo.patch | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 patches/armadillo.patch diff --git a/patches/armadillo.patch b/patches/armadillo.patch new file mode 100644 index 0000000..4b171ee --- /dev/null +++ b/patches/armadillo.patch @@ -0,0 +1,28 @@ +--- config.hpp 2014-01-03 03:08:18.000000000 +0100 ++++ config_new.hpp 2014-01-22 16:05:36.367604953 +0100 +@@ -9,14 +9,14 @@ + + + #if !defined(ARMA_USE_LAPACK) +-// #define ARMA_USE_LAPACK ++#define ARMA_USE_LAPACK + //// Uncomment the above line if you have LAPACK or a high-speed replacement for LAPACK, + //// such as Intel MKL, AMD ACML, or the Accelerate framework. + //// LAPACK is required for matrix decompositions (eg. SVD) and matrix inverse. + #endif + + #if !defined(ARMA_USE_BLAS) +-// #define ARMA_USE_BLAS ++#define ARMA_USE_BLAS + //// Uncomment the above line if you have BLAS or a high-speed replacement for BLAS, + //// such as OpenBLAS, GotoBLAS, Intel MKL, AMD ACML, or the Accelerate framework. + //// BLAS is used for matrix multiplication. +@@ -29,7 +29,7 @@ + //// ARPACK is required for eigendecompositions of sparse matrices, eg. eigs_sym() + #endif + +-// #define ARMA_USE_WRAPPER ++#define ARMA_USE_WRAPPER + //// Comment out the above line if you're getting linking errors when compiling your programs, + //// or if you prefer to directly link with LAPACK, BLAS or ARPACK. + //// You will then need to link your programs directly with -llapack -lblas instead of -larmadillo From 132db22b9bdf03aa31b89b281a3ffec00ea39a4b Mon Sep 17 00:00:00 2001 From: "Carsten Haubold (IWR)" Date: Tue, 8 Jul 2014 11:08:07 +0200 Subject: [PATCH 54/62] use pgmlink with conservation tracking --- pgmlink.cmake | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/pgmlink.cmake b/pgmlink.cmake index 5a79ad9..409139d 100644 --- a/pgmlink.cmake +++ b/pgmlink.cmake @@ -23,40 +23,51 @@ if (NOT CMAKE_CPLEX_ROOT_DIR) else() set(build_pgmlink 1) + include (python) include (ann) include (lemon) include (vigra) include (boost) include (opengm) include (dlib) - include (python) + include (mlpack) + include (numpy) + include (cplex-shared) external_git_repo (pgmlink - 364bef9a809fc533fff292c99d1c8eb489a3c591 - https://github.com/ilastik/pgmlink) + 38b90f8be2f16becbf3ed90a06b472b771c48c46 + https://github.com/martinsch/pgmlink) message ("Installing ${pgmlink_NAME} into FlyEM build aread: ${BUILDEM_DIR} ...") ExternalProject_Add(${pgmlink_NAME} - DEPENDS ${ann_NAME} ${lemon_NAME} ${vigra_NAME} ${boost_NAME} ${opengm_NAME} + DEPENDS ${ann_NAME} ${lemon_NAME} ${vigra_NAME} ${boost_NAME} ${opengm_NAME} ${numpy_NAME} ${cplex-shared} ${ilocplex-shared} ${concert-shared} - ${dlib_NAME} + ${dlib_NAME} ${mlpack_NAME} PREFIX ${BUILDEM_DIR} GIT_REPOSITORY ${pgmlink_URL} GIT_TAG ${pgmlink_TAG} UPDATE_COMMAND "" - PATCH_COMMAND "" + PATCH_COMMAND ${BUILDEM_ENV_STRING} ${PATCH_EXE} + # Patch CMakeLists as it just overwrote the CXX_FLAGS + ${pgmlink_SRC_DIR}/CMakeLists.txt ${PATCH_DIR}/pgmlink-cmake.patch CONFIGURE_COMMAND ${BUILDEM_ENV_STRING} ${CMAKE_COMMAND} ${pgmlink_SRC_DIR} -DCMAKE_INSTALL_PREFIX=${BUILDEM_DIR} -DCMAKE_PREFIX_PATH=${BUILDEM_DIR} + -DBUILD_SHARED_LIBS=ON + -DCMAKE_CXX_FLAGS="-ftemplate-depth=512" + -DCMAKE_EXE_LINKER_FLAGS=${BUILDEM_ADDITIONAL_CXX_FLAGS} + -DCMAKE_SHARED_LINKER_FLAGS=${BUILDEM_ADDITIONAL_CXX_FLAGS} -DWITH_PYTHON=ON -DWITH_TESTS=ON -DWITH_CHECKED_STL=OFF -DPYTHON_INCLUDE_DIR=${PYTHON_INCLUDE_PATH} -DPYTHON_LIBRARY=${PYTHON_LIBRARY_FILE} + -DVigranumpy_DIR="${BUILDEM_DIR}/lib/vigranumpy" ${CMAKE_CPLEX_ROOT_DIR} + -DVIGRA_ROOT=${BUILDEM_DIR} BUILD_COMMAND ${BUILDEM_ENV_STRING} $(MAKE) INSTALL_COMMAND ${BUILDEM_ENV_STRING} $(MAKE) install From 11656a8e6660868f322a2f0f1917120dcae680d5 Mon Sep 17 00:00:00 2001 From: Carsten Haubold Date: Tue, 8 Jul 2014 17:52:31 +0200 Subject: [PATCH 55/62] Update PGMLink to latest revision. Fixes compile errors and warnings, and finds the new VIGRA library --- pgmlink.cmake | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pgmlink.cmake b/pgmlink.cmake index 409139d..4eb807b 100644 --- a/pgmlink.cmake +++ b/pgmlink.cmake @@ -37,7 +37,7 @@ else() include (cplex-shared) external_git_repo (pgmlink - 38b90f8be2f16becbf3ed90a06b472b771c48c46 + 270f09dad4d9c8182963c1fe685fa762bbeed2b3 https://github.com/martinsch/pgmlink) message ("Installing ${pgmlink_NAME} into FlyEM build aread: ${BUILDEM_DIR} ...") @@ -57,7 +57,6 @@ else() -DCMAKE_INSTALL_PREFIX=${BUILDEM_DIR} -DCMAKE_PREFIX_PATH=${BUILDEM_DIR} -DBUILD_SHARED_LIBS=ON - -DCMAKE_CXX_FLAGS="-ftemplate-depth=512" -DCMAKE_EXE_LINKER_FLAGS=${BUILDEM_ADDITIONAL_CXX_FLAGS} -DCMAKE_SHARED_LINKER_FLAGS=${BUILDEM_ADDITIONAL_CXX_FLAGS} -DWITH_PYTHON=ON @@ -67,7 +66,6 @@ else() -DPYTHON_LIBRARY=${PYTHON_LIBRARY_FILE} -DVigranumpy_DIR="${BUILDEM_DIR}/lib/vigranumpy" ${CMAKE_CPLEX_ROOT_DIR} - -DVIGRA_ROOT=${BUILDEM_DIR} BUILD_COMMAND ${BUILDEM_ENV_STRING} $(MAKE) INSTALL_COMMAND ${BUILDEM_ENV_STRING} $(MAKE) install From 87c1eabd11e97b55c050b64fa676b6dc6a898172 Mon Sep 17 00:00:00 2001 From: Carsten Haubold Date: Tue, 8 Jul 2014 21:04:50 +0200 Subject: [PATCH 56/62] Remove reference to pgmlink-cmake patch which is outdated --- pgmlink.cmake | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/pgmlink.cmake b/pgmlink.cmake index 4eb807b..5bc2ce6 100644 --- a/pgmlink.cmake +++ b/pgmlink.cmake @@ -9,7 +9,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8) include (ExternalProject) include (ExternalSource) include (BuildSupport) -include (PatchSupport) +#include (PatchSupport) if(CPLEX_ROOT_DIR) set(CMAKE_CPLEX_ROOT_DIR "-DCPLEX_ROOT_DIR=${CPLEX_ROOT_DIR}") @@ -49,10 +49,7 @@ else() GIT_REPOSITORY ${pgmlink_URL} GIT_TAG ${pgmlink_TAG} UPDATE_COMMAND "" - PATCH_COMMAND ${BUILDEM_ENV_STRING} ${PATCH_EXE} - # Patch CMakeLists as it just overwrote the CXX_FLAGS - ${pgmlink_SRC_DIR}/CMakeLists.txt ${PATCH_DIR}/pgmlink-cmake.patch - + PATCH_COMMAND "" CONFIGURE_COMMAND ${BUILDEM_ENV_STRING} ${CMAKE_COMMAND} ${pgmlink_SRC_DIR} -DCMAKE_INSTALL_PREFIX=${BUILDEM_DIR} -DCMAKE_PREFIX_PATH=${BUILDEM_DIR} From 35470c42c2d875a25e805ab8215d8725e456f76e Mon Sep 17 00:00:00 2001 From: Carsten Haubold Date: Wed, 9 Jul 2014 10:47:41 +0200 Subject: [PATCH 57/62] Update vigra version as it fixes a cmake problem on OSX --- vigra.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vigra.cmake b/vigra.cmake index 7a9975c..8d79dfb 100644 --- a/vigra.cmake +++ b/vigra.cmake @@ -31,7 +31,7 @@ endif() include (nose) # select the desired VIGRA commit -set(DEFAULT_VIGRA_VERSION "fb83cf8a595a36285980bd563c90e5d666bce388") # from 2014-06-23 +set(DEFAULT_VIGRA_VERSION "4510b643cbf1d62d1b9111c53236919eb1c2d063") # from 2014-07-02 IF(NOT DEFINED VIGRA_VERSION) SET(VIGRA_VERSION "${DEFAULT_VIGRA_VERSION}") ENDIF() From b9b882d564a9e7b9e17bfdf3ba01eca88f4a0e07 Mon Sep 17 00:00:00 2001 From: martinsch Date: Wed, 9 Jul 2014 17:00:43 +0200 Subject: [PATCH 58/62] Update pgmlink SHA --- pgmlink.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pgmlink.cmake b/pgmlink.cmake index 5bc2ce6..a960425 100644 --- a/pgmlink.cmake +++ b/pgmlink.cmake @@ -37,7 +37,7 @@ else() include (cplex-shared) external_git_repo (pgmlink - 270f09dad4d9c8182963c1fe685fa762bbeed2b3 + 07454490ffd453687a92249f13cedcf25aed0b37 https://github.com/martinsch/pgmlink) message ("Installing ${pgmlink_NAME} into FlyEM build aread: ${BUILDEM_DIR} ...") From afbe5c8a430ce487fcb21f57468a6eb49f4852f2 Mon Sep 17 00:00:00 2001 From: martinsch Date: Thu, 10 Jul 2014 19:57:42 +0200 Subject: [PATCH 59/62] update pgmlink SHA --- pgmlink.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pgmlink.cmake b/pgmlink.cmake index a960425..c05357d 100644 --- a/pgmlink.cmake +++ b/pgmlink.cmake @@ -37,7 +37,7 @@ else() include (cplex-shared) external_git_repo (pgmlink - 07454490ffd453687a92249f13cedcf25aed0b37 + 9c5e87503bcbf453e14acf3cafdafa9a76c69921 https://github.com/martinsch/pgmlink) message ("Installing ${pgmlink_NAME} into FlyEM build aread: ${BUILDEM_DIR} ...") From 802a976a001054a846e239064e83c93ac86a7b2b Mon Sep 17 00:00:00 2001 From: martinsch Date: Fri, 11 Jul 2014 00:36:56 +0200 Subject: [PATCH 60/62] Update pgmlink SHA --- pgmlink.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pgmlink.cmake b/pgmlink.cmake index c05357d..fce0945 100644 --- a/pgmlink.cmake +++ b/pgmlink.cmake @@ -37,7 +37,7 @@ else() include (cplex-shared) external_git_repo (pgmlink - 9c5e87503bcbf453e14acf3cafdafa9a76c69921 + 7a0c8d4f54e9a4066991829fb52b411a02914666 https://github.com/martinsch/pgmlink) message ("Installing ${pgmlink_NAME} into FlyEM build aread: ${BUILDEM_DIR} ...") From 8b5f1e6151cd6a640f525fd80006f1c9f28aa0ed Mon Sep 17 00:00:00 2001 From: Carsten Haubold Date: Mon, 10 Nov 2014 19:13:54 +0100 Subject: [PATCH 61/62] Update dlib version --- dlib.cmake | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dlib.cmake b/dlib.cmake index f20e40f..63f720f 100644 --- a/dlib.cmake +++ b/dlib.cmake @@ -12,10 +12,10 @@ include (BuildSupport) include (PatchSupport) external_source (dlib - 18.3 - dlib-18.3.tar.bz2 - 1ad26ec7bddccf8a605e1edfd0620c65 - http://downloads.sourceforge.net/project/dclib/dlib/v18.3 + 18.10 + dlib-18.10.tar.bz2 + ede77c5a1fb8c249b13987728424be74 + http://downloads.sourceforge.net/project/dclib/dlib/v18.10 FORCE) message ("Installing ${dlib_NAME} into FlyEM build area: ${BUILDEM_DIR} ...") From 5e03ef851fbd17f12be66d81d344f5aa823423ba Mon Sep 17 00:00:00 2001 From: Carsten Haubold Date: Mon, 10 Nov 2014 19:15:37 +0100 Subject: [PATCH 62/62] force to load openssl from their website --- openssl.cmake | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/openssl.cmake b/openssl.cmake index 76968f2..c08cf0d 100644 --- a/openssl.cmake +++ b/openssl.cmake @@ -16,7 +16,8 @@ external_source (openssl 1.0.1c openssl-1.0.1c.tar.gz ae412727c8c15b67880aef7bd2999b2e - http://www.openssl.org/source) + http://www.openssl.org/source + FORCE) if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") # On Mac, 64-bit builds must be manually requested.