diff --git a/CMake/PackageDepends/MITK_Redland_Config.cmake b/CMake/PackageDepends/MITK_Redland_Config.cmake new file mode 100644 index 0000000000..8269c8f356 --- /dev/null +++ b/CMake/PackageDepends/MITK_Redland_Config.cmake @@ -0,0 +1,4 @@ +list(APPEND CMAKE_PREFIX_PATH ${REDLAND_INSTALL_DIR}) +find_package(Redland REQUIRED CONFIG) +list(APPEND ALL_INCLUDE_DIRECTORIES ${Redland_INCLUDE_DIR}) +list(APPEND ALL_LIBRARIES rdf) diff --git a/CMake/mitkFunctionGetLibrarySearchPaths.cmake b/CMake/mitkFunctionGetLibrarySearchPaths.cmake index 60585b675e..0aa7fd12e2 100644 --- a/CMake/mitkFunctionGetLibrarySearchPaths.cmake +++ b/CMake/mitkFunctionGetLibrarySearchPaths.cmake @@ -1,177 +1,180 @@ function(mitkFunctionGetLibrarySearchPaths search_path intermediate_dir) set(_dir_candidates ${MITK_VTK_LIBRARY_DIRS} ${MITK_ITK_LIBRARY_DIRS} "${MITK_BINARY_DIR}/bin" "${MITK_BINARY_DIR}/bin/plugins") # Determine the Qt4/5 library installation prefix set(_qmake_location ) if(MITK_USE_Qt4) set(_qmake_location ${QT_QMAKE_EXECUTABLE}) elseif(MITK_USE_Qt5 AND TARGET ${Qt5Core_QMAKE_EXECUTABLE}) get_property(_qmake_location TARGET ${Qt5Core_QMAKE_EXECUTABLE} PROPERTY IMPORT_LOCATION) endif() if(_qmake_location) if(NOT _qt_install_libs) if(WIN32) execute_process(COMMAND ${_qmake_location} -query QT_INSTALL_BINS OUTPUT_VARIABLE _qt_install_libs OUTPUT_STRIP_TRAILING_WHITESPACE) else() execute_process(COMMAND ${_qmake_location} -query QT_INSTALL_LIBS OUTPUT_VARIABLE _qt_install_libs OUTPUT_STRIP_TRAILING_WHITESPACE) endif() file(TO_CMAKE_PATH "${_qt_install_libs}" _qt_install_libs) set(_qt_install_libs ${_qt_install_libs} CACHE INTERNAL "Qt library installation prefix" FORCE) endif() if(_qt_install_libs) list(APPEND _dir_candidates ${_qt_install_libs}) endif() elseif(MITK_USE_QT) message(WARNING "The qmake executable could not be found.") endif() get_property(_additional_paths GLOBAL PROPERTY MITK_ADDITIONAL_LIBRARY_SEARCH_PATHS) if(_additional_paths) list(APPEND _dir_candidates ${_additional_paths}) endif() if(VTK_DIR) find_package(VTK QUIET) if(VTK_RUNTIME_LIBRARY_DIRS) list(APPEND _dir_candidates ${VTK_RUNTIME_LIBRARY_DIRS}) endif() endif() # The code below is sub-optimal. It makes assumptions about # the structure of the build directories, pointed to by # the *_DIR variables. Instead, we should rely on package # specific "LIBRARY_DIRS" variables, if they exist. if(WIN32) if(DCMTK_DIR) list(APPEND _dir_candidates "${DCMTK_DIR}/bin") endif() if(OpenCV_DIR) list(APPEND _dir_candidates "${OpenCV_DIR}/bin") endif() if(SOFA_DIR) list(APPEND _dir_candidates "${SOFA_DIR}/bin") endif() if(Python_DIR) list(APPEND _dir_candidates "${Python_DIR}/bin") endif() if(SimpleITK_DIR) list(APPEND _dir_candidates "${SimpleITK_DIR}/bin") endif() list(APPEND _dir_candidates "${ITK_DIR}/bin") else() if(DCMTK_DIR) list(APPEND _dir_candidates "${DCMTK_DIR}/lib") endif() if(OpenCV_DIR) list(APPEND _dir_candidates "${OpenCV_DIR}/lib") endif() if(SOFA_DIR) list(APPEND _dir_candidates "${SOFA_DIR}/lib") endif() if(Python_DIR) list(APPEND _dir_candidates "${Python_DIR}/lib") endif() if(SimpleITK_DIR) list(APPEND _dir_candidates "${SimpleITK_DIR}/lib") endif() + if(REDLAND_INSTALL_DIR) + list(APPEND _dir_candidates "${REDLAND_INSTALL_DIR}/lib") + endif() list(APPEND _dir_candidates "${ITK_DIR}/lib") endif() if(MITK_USE_Python AND CTK_PYTHONQT_INSTALL_DIR) list(APPEND _dir_candidates "${CTK_PYTHONQT_INSTALL_DIR}/bin") endif() if(MITK_USE_Boost AND MITK_USE_Boost_LIBRARIES AND NOT MITK_USE_SYSTEM_Boost) list(APPEND _dir_candidates "${Boost_LIBRARY_DIR}") endif() if(ACVD_DIR) list(APPEND _dir_candidates "${ACVD_DIR}/bin") endif() if(ANN_DIR) list(APPEND _dir_candidates "${ANN_DIR}") endif() if(CppUnit_DIR) list(APPEND _dir_candidates "${CppUnit_DIR}") endif() if(GLUT_DIR) list(APPEND _dir_candidates "${GLUT_DIR}") endif() if(GDCM_DIR) list(APPEND _dir_candidates "${GDCM_DIR}/bin") endif() if(GLEW_DIR) list(APPEND _dir_candidates "${GLEW_DIR}") endif() if(tinyxml_DIR) list(APPEND _dir_candidates "${tinyxml_DIR}") endif() if(Poco_DIR) list(APPEND _dir_candidates "${Poco_DIR}/lib") endif() if(Qwt_DIR) list(APPEND _dir_candidates "${Qwt_DIR}") endif() if(Qxt_DIR) list(APPEND _dir_candidates "${Qxt_DIR}") endif() if(MITK_USE_TOF_PMDO3 OR MITK_USE_TOF_PMDCAMCUBE OR MITK_USE_TOF_PMDCAMBOARD) list(APPEND _dir_candidates "${MITK_PMD_SDK_DIR}/plugins" "${MITK_PMD_SDK_DIR}/bin") endif() if(MITK_USE_CTK) list(APPEND _dir_candidates "${CTK_LIBRARY_DIRS}") foreach(_ctk_library ${CTK_LIBRARIES}) if(${_ctk_library}_LIBRARY_DIRS) list(APPEND _dir_candidates "${${_ctk_library}_LIBRARY_DIRS}") endif() endforeach() endif() if(MITK_USE_BLUEBERRY) if(DEFINED CTK_PLUGIN_RUNTIME_OUTPUT_DIRECTORY) if(IS_ABSOLUTE "${CTK_PLUGIN_RUNTIME_OUTPUT_DIRECTORY}") list(APPEND _dir_candidates "${CTK_PLUGIN_RUNTIME_OUTPUT_DIRECTORY}") else() list(APPEND _dir_candidates "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${CTK_PLUGIN_RUNTIME_OUTPUT_DIRECTORY}") endif() endif() endif() if(MITK_LIBRARY_DIRS) list(APPEND _dir_candidates ${MITK_LIBRARY_DIRS}) endif() list(REMOVE_DUPLICATES _dir_candidates) set(_search_dirs ) foreach(_dir ${_dir_candidates}) if(EXISTS "${_dir}/${intermediate_dir}") list(APPEND _search_dirs "${_dir}/${intermediate_dir}") else() list(APPEND _search_dirs "${_dir}") endif() endforeach() # Special handling for "internal" search dirs. The intermediate directory # might not have been created yet, so we can't check for its existence. # Hence we just add it for Windows without checking. set(_internal_search_dirs "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/plugins") if(WIN32) foreach(_dir ${_internal_search_dirs}) set(_search_dirs "${_dir}/${intermediate_dir}" ${_search_dirs}) endforeach() else() set(_search_dirs ${_internal_search_dirs} ${_search_dirs}) endif() list(REMOVE_DUPLICATES _search_dirs) set(${search_path} ${_search_dirs} PARENT_SCOPE) endfunction() diff --git a/CMakeExternals/redland-1.0.17.patch b/CMakeExternals/redland-1.0.17.patch index 126a91123b..41363e1ce0 100644 --- a/CMakeExternals/redland-1.0.17.patch +++ b/CMakeExternals/redland-1.0.17.patch @@ -1,1034 +1,1051 @@ -diff -urNb redland-1.0.17-orig/CMakeLists.txt redland-1.0.17-patched/CMakeLists.txt +diff -burN redland-1.0.17-orig/CMakeLists.txt redland-1.0.17-patched/CMakeLists.txt --- redland-1.0.17-orig/CMakeLists.txt 1970-01-01 01:00:00.000000000 +0100 -+++ redland-1.0.17-patched/CMakeLists.txt 2014-11-19 04:51:54.088581687 +0100 ++++ redland-1.0.17-patched/CMakeLists.txt 2014-11-26 14:03:18.518283855 +0100 @@ -0,0 +1,298 @@ +# redland/CMakeLists.txt +# +# This file allows building Redland with the CMake configuration tool. +# Download CMake in source or binary form from http://www.cmake.org/ +# +# Based on the CMakeLists.txt file from Raptor. +# This file is in the public domain. +# + +SET(REDLAND_VERSION_MAJOR 1) +SET(REDLAND_VERSION_MINOR 0) +SET(REDLAND_VERSION_RELEASE 17) +SET(REDLAND_MIN_VERSION_DECIMAL 10017) + +SET(VERSION "${REDLAND_VERSION_MAJOR}.${REDLAND_VERSION_MINOR}.${REDLAND_VERSION_RELEASE}") +MATH(EXPR REDLAND_VERSION_DECIMAL "${REDLAND_VERSION_MAJOR} * 10000 + ${REDLAND_VERSION_MINOR} * 100 + ${REDLAND_VERSION_RELEASE}") + +PROJECT(redland C) + +CMAKE_MINIMUM_REQUIRED(VERSION 2.8.9) + +SET(CMAKE_INCLUDE_CURRENT_DIR 1) + +SET(PROJECT_DESCRIPTION "Redland RDF API Library") + +################################################################ + +# Third-party libraries + +SET(RAPTOR_MIN_VERSION 2.0.7) +FIND_PACKAGE(Raptor2 ${RAPTOR_MIN_VERSION} REQUIRED) +include_directories(${Raptor2_INCLUDE_DIR}) + +set(rdf_parsers_available "raptor(${Raptor2_VERSION})") + +find_package(Rasqal REQUIRED) +include_directories(${Rasqal_INCLUDE_DIR}) + +set(rdf_query "rasqal(${Rasqal_VERSION})") + +################################################################ + +# Configuration checks + +INCLUDE(CheckIncludeFile) +INCLUDE(CheckIncludeFiles) +INCLUDE(CheckFunctionExists) +INCLUDE(CheckTypeSize) +INCLUDE(CheckStructHasMember) +INCLUDE(CheckCSourceCompiles) + +CHECK_INCLUDE_FILE(errno.h HAVE_ERRNO_H) +CHECK_INCLUDE_FILE(stdlib.h HAVE_STDLIB_H) +CHECK_INCLUDE_FILE(unistd.h HAVE_UNISTD_H) +CHECK_INCLUDE_FILE(string.h HAVE_STRING_H) +CHECK_INCLUDE_FILE(fcntl.h HAVE_FCNTL_H) +CHECK_INCLUDE_FILE(getopt.h HAVE_GETOPT_H) +CHECK_INCLUDE_FILE(stddef.h HAVE_STDDEF_H) +CHECK_INCLUDE_FILE(memory.h HAVE_MEMORY_H) +CHECK_INCLUDE_FILE(pthread.h HAVE_PTHREAD_H) + +CHECK_INCLUDE_FILE(sys/time.h HAVE_SYS_TIME_H) +CHECK_INCLUDE_FILE(time.h HAVE_TIME_H) +CHECK_INCLUDE_FILES("sys/time.h;time.h" TIME_WITH_SYS_TIME) + +CHECK_INCLUDE_FILE(sys/stat.h HAVE_SYS_STAT_H) + +CHECK_FUNCTION_EXISTS(access HAVE_ACCESS) +CHECK_FUNCTION_EXISTS(_access HAVE__ACCESS) +CHECK_FUNCTION_EXISTS(getopt HAVE_GETOPT) +CHECK_FUNCTION_EXISTS(getopt_long HAVE_GETOPT_LONG) +CHECK_FUNCTION_EXISTS(gettimeofday HAVE_GETTIMEOFDAY) +CHECK_FUNCTION_EXISTS(snprintf HAVE_SNPRINTF) +CHECK_FUNCTION_EXISTS(_snprintf HAVE__SNPRINTF) +CHECK_FUNCTION_EXISTS(strcasecmp HAVE_STRCASECMP) +CHECK_FUNCTION_EXISTS(stricmp HAVE_STRICMP) +CHECK_FUNCTION_EXISTS(_stricmp HAVE__STRICMP) +CHECK_FUNCTION_EXISTS(strnicmp HAVE_STRNICMP) +CHECK_FUNCTION_EXISTS(_strnicmp HAVE__STRNICMP) +CHECK_FUNCTION_EXISTS(vasprintf HAVE_VASPRINTF) +CHECK_FUNCTION_EXISTS(vsnprintf HAVE_VSNPRINTF) +CHECK_FUNCTION_EXISTS(_vsnprintf HAVE__VSNPRINTF) +CHECK_FUNCTION_EXISTS(opendir HAVE_OPENDIR) +CHECK_FUNCTION_EXISTS(readdir HAVE_READDIR) +CHECK_FUNCTION_EXISTS(shl_load HAVE_SHL_LOAD) +CHECK_FUNCTION_EXISTS(strlcat HAVE_STRLCAT) +CHECK_FUNCTION_EXISTS(strlcpy HAVE_STRLCPY) + +CHECK_FUNCTION_EXISTS(memcmp HAVE_MEMCMP) +CHECK_FUNCTION_EXISTS(mkstemp HAVE_MKSTEMP) +CHECK_FUNCTION_EXISTS(mktemp HAVE_MKTEMP) +CHECK_FUNCTION_EXISTS(mktemp HAVE__MKTEMP) +CHECK_FUNCTION_EXISTS(tmpnam HAVE_TMPNAM) +CHECK_FUNCTION_EXISTS(getenv HAVE_GETENV) +CHECK_FUNCTION_EXISTS(close HAVE_CLOSE) +CHECK_FUNCTION_EXISTS(_close HAVE__CLOSE) +CHECK_FUNCTION_EXISTS(unlink HAVE_UNLINK) +CHECK_FUNCTION_EXISTS(_unlink HAVE__UNLINK) + +CHECK_TYPE_SIZE(byte BYTE) +CHECK_TYPE_SIZE(u32 U32) +CHECK_TYPE_SIZE(u64 U64) + +CHECK_TYPE_SIZE("unsigned char" SIZEOF_UNSIGNED_CHAR) +CHECK_TYPE_SIZE("unsigned int" SIZEOF_UNSIGNED_INT) +CHECK_TYPE_SIZE("unsigned long" SIZEOF_UNSIGNED_LONG) +CHECK_TYPE_SIZE("unsigned long long" SIZEOF_UNSIGNED_LONG_LONG) + +CHECK_C_SOURCE_COMPILES(" +int main() {char *function_name = __func__; return 0;}" + HAVE___FUNC__ +) +CHECK_C_SOURCE_COMPILES(" +int main() {char *function_name = __FUNCTION__; return 0;}" + HAVE___FUNCTION__ +) + +################################################################ + +# User-configurable options +# +# (Note: The CMake GUI displays these in alphabetical order, regardless of +# the order we use here) + +SET(BUILD_SHARED_LIBS OFF CACHE BOOL + "Build shared libraries instead of static ones.") + +#SET(REDLAND_ENABLE_TESTING TRUE CACHE BOOL +# "Enable unit tests") + +IF(BUILD_SHARED_LIBS) + SET(REDLAND_STATIC FALSE) +ELSE() + SET(REDLAND_STATIC TRUE) +ENDIF() + +# ---------- Threading ----------- + +if(HAVE_PTHREAD_H) + set(WITH_THREADS OFF CACHE BOOL "With POSIX thread support") + if(WITH_THREADS) + set(CMAKE_THREAD_PREFER_PTHREAD) + find_package(Threads REQUIRED) + if(NOT CMAKE_USE_PTHREADS_INIT) + message(SEND_ERROR "POSIX pthread library not found") + endif() + endif() +endif() + + +########## ------- Storage Backends ------- ########### + +set(persistent_storages "file tstore mysql sqlite") +set(persistent_store 0) +set(all_storages memory file hashes trees mysql sqlite tstore postgresql virtuoso) +set(always_available_storages memory file hashes trees) +set(storages_enabled ) + +set(ENABLE_ALL_STORAGES OFF CACHE BOOL "Use all available storages") + +# default availabilities and enablements +foreach(storage ${all_storages}) + set(${storage}_storage_available 0) + set(${storage}_storage 0) +endforeach() +foreach(storage ${always_available_storages}) + set(${storage}_storage_available 1) + string(TOUPPER ${storage} storage_uc) + if(NOT ${storage} STREQUAL "memory") + set(ENABLE_${storage_uc} 1 CACHE BOOL "Use ${storage} storage backend") + endif() +endforeach() +set(ENABLE_MEMORY 1) + +# ----------- BerkeleyDB ------------- + +set(bdb_available "Missing") +set(bdb_version "n/a") +set(storages_available ${always_available_storages}) + +if(HAVE_LIBDB) + list(APPEND storages_available "hashes(bdb ${bdb_version})") +endif() + +# ----------- MySql ------------- + +set(ENABLE_MYSQL_INIT 0) +set(libmysql_min_version 3.23.56) +set(mysql_storage_available 0) + +find_program(MYSQL_CONFIG mysql_config) +if(MYSQL_CONFIG) + execute_process(COMMAND ${MYSQL_CONFIG} --version + OUTPUT_VARIABLE LIBMYSQL_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE + ) + message("mysql version: ${LIBMYSQL_VERSION}") + execute_process(COMMAND ${MYSQL_CONFIG} --libs + OUTPUT_VARIABLE LIBMYSQL_LIBRARIES OUTPUT_STRIP_TRAILING_WHITESPACE + ) + execute_process(COMMAND ${MYSQL_CONFIG} --include + OUTPUT_VARIABLE LIBMYSQL_INCLUDE_DIR OUTPUT_STRIP_TRAILING_WHITESPACE + ) + string(REPLACE "-I" "" LIBMYSQL_INCLUDE_DIR ${LIBMYSQL_INCLUDE_DIR}) + message("mysql include dir: ${LIBMYSQL_INCLUDE_DIR}") + list(APPEND storages_available "mysql(${LIBMYSQL_VERSION})") + set(ENABLE_MYSQL_INIT 1) + set(mysql_storage_available 1) +endif() + +set(ENABLE_MYSQL ${ENABLE_MYSQL_INIT} CACHE BOOL "Use MySQL 3/4 storage backend") + +foreach(storage ${all_storages}) + string(TOUPPER ${storage} storage_uc) + if(${storage}_storage_available AND + (ENABLE_${storage_uc} OR ENABLE_ALL_STORAGES)) + set(STORAGE_${storage_uc} 1) + list(APPEND storages_enabled ${storage}) + list(FIND persistent_storages ${storage} _index) + if(${_index} GREATER -1) + set(persistent_store 1) + endif() + endif() +endforeach() + +if(NOT persistent_store) + message("WARNING: No persistant storage is available or enabled") +endif() + +########## ------- Digest Modules ------- ########### + +set(digest_modules md5 sha1 ripemd160) +set(digest_modules_available ) + +set(digest_srcs ) +foreach(module ${digest_modules}) + string(TOUPPER ${module} module_uc) + set(base rdf_digest_${module}) + if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/src/${base}.c) + set(HAVE_LOCAL_${module_uc}_DIGEST 1) + list(APPEND digest_srcs ${base}.c) + list(APPEND digest_modules_available ${module}) + endif() +endforeach() + +################################################################ + +include(CMakePackageConfigHelpers) + +CONFIGURE_FILE( + src/rdf_config_cmake.h.in + src/rdf_config.h + @ONLY +) + +ADD_DEFINITIONS(-DHAVE_CONFIG_H) + +#CONFIGURE_FILE( +# src/rasqal.h.in +# src/rasqal.h +# @ONLY +#) + +set(INCLUDE_INSTALL_DIR include) +set(LIB_INSTALL_DIR lib) +set(BIN_INSTALL_DIR bin) +set(CMAKE_INSTALL_DIR lib/redland/cmake) +set(DATA_INSTALL_DIR share/redland) + +add_subdirectory(src) + +configure_package_config_file(RedlandConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/RedlandConfig.cmake + INSTALL_DESTINATION ${CMAKE_INSTALL_DIR} + PATH_VARS INCLUDE_INSTALL_DIR + NO_CHECK_REQUIRED_COMPONENTS_MACRO +) + +write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/RedlandConfigVersion.cmake + VERSION ${VERSION} + COMPATIBILITY AnyNewerVersion +) + +install(FILES + ${CMAKE_CURRENT_BINARY_DIR}/RedlandConfig.cmake + ${CMAKE_CURRENT_BINARY_DIR}/RedlandConfigVersion.cmake + DESTINATION ${CMAKE_INSTALL_DIR} +) + + +message("Redland configuration: + Oracle Berkeley DB (BDB) : ${bdb_available} + Triple stores available : ${storages_available} + Triple stores enabled : ${storages_enabled} + RDF parsers : ${rdf_parsers_available} + RDF query : ${rdf_query} + Content digests : ${digest_modules_available}" +) + +# end redland/CMakeLists.txt -diff -urNb redland-1.0.17-orig/RedlandConfig.cmake.in redland-1.0.17-patched/RedlandConfig.cmake.in +diff -burN redland-1.0.17-orig/RedlandConfig.cmake.in redland-1.0.17-patched/RedlandConfig.cmake.in --- redland-1.0.17-orig/RedlandConfig.cmake.in 1970-01-01 01:00:00.000000000 +0100 -+++ redland-1.0.17-patched/RedlandConfig.cmake.in 2014-11-18 01:58:58.476582684 +0100 ++++ redland-1.0.17-patched/RedlandConfig.cmake.in 2014-11-26 14:08:47.781299653 +0100 +@@ -0,0 +1,13 @@ ++set(Redland_VERSION @VERSION@) ++ ++@PACKAGE_INIT@ ++ ++set_and_check(Redland_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@") ++ ++find_package(Raptor2 REQUIRED) ++find_package(Rasqal REQUIRED) ++list(APPEND Redland_INCLUDE_DIR ${Rasqal_INCLUDE_DIR} ${Raptor2_INCLUDE_DIR}) ++ ++if(NOT TARGET rdf AND EXISTS ${CMAKE_CURRENT_LIST_DIR}/RedlandTargets.cmake) ++ include(${CMAKE_CURRENT_LIST_DIR}/RedlandTargets.cmake) ++endif() +diff -burN redland-1.0.17-orig/RedlandConfig.cmake.in~ redland-1.0.17-patched/RedlandConfig.cmake.in~ +--- redland-1.0.17-orig/RedlandConfig.cmake.in~ 1970-01-01 01:00:00.000000000 +0100 ++++ redland-1.0.17-patched/RedlandConfig.cmake.in~ 2014-11-26 14:03:18.518283855 +0100 @@ -0,0 +1,9 @@ +set(Redland_VERSION @VERSION@) + +@PACKAGE_INIT@ + +set_and_check(Redland_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@") + +if(NOT TARGET rdf AND EXISTS ${CMAKE_CURRENT_LIST_DIR}/RedlandTargets.cmake) + include(${CMAKE_CURRENT_LIST_DIR}/RedlandTargets.cmake) +endif() -diff -urNb redland-1.0.17-orig/src/CMakeLists.txt redland-1.0.17-patched/src/CMakeLists.txt +diff -burN redland-1.0.17-orig/src/CMakeLists.txt redland-1.0.17-patched/src/CMakeLists.txt --- redland-1.0.17-orig/src/CMakeLists.txt 1970-01-01 01:00:00.000000000 +0100 -+++ redland-1.0.17-patched/src/CMakeLists.txt 2014-11-18 03:05:23.608582208 +0100 ++++ redland-1.0.17-patched/src/CMakeLists.txt 2014-11-26 14:03:18.518283855 +0100 @@ -0,0 +1,171 @@ +# redland/src/CMakeLists.txt +# +# Based on the src/CMakeLists.txt file from Raptor +# This file is in the public domain. +# + +set(public_headers + librdf.h + rdf_concepts.h + rdf_digest.h + rdf_hash.h + rdf_init.h + rdf_iterator.h + rdf_list.h + rdf_log.h + rdf_model.h + rdf_node.h + rdf_parser.h + rdf_query.h + rdf_raptor.h + rdf_serializer.h + rdf_statement.h + rdf_storage.h + rdf_storage_module.h + rdf_stream.h + rdf_uri.h + rdf_utf8.h + redland.h +) + +set(internal_headers + rdf_concepts_internal.h + rdf_digest_internal.h + rdf_files.h + rdf_hash_internal.h + rdf_heuristics.h + rdf_init_internal.h + rdf_internal.h + rdf_iterator_internal.h + rdf_list_internal.h + rdf_log_internal.h + rdf_model_internal.h + rdf_node_internal.h + rdf_parser_internal.h + rdf_query_internal.h + rdf_raptor_internal.h + rdf_serializer_internal.h + rdf_statement_internal.h + rdf_storage_internal.h + rdf_stream_internal.h + rdf_types.h + rdf_uri_internal.h +) + +set(srcs + rdf_concepts.c + rdf_digest.c + rdf_files.c + rdf_hash.c + rdf_hash_cursor.c + rdf_hash_memory.c + rdf_heuristics.c + rdf_init.c + rdf_iterator.c + rdf_list.c + rdf_log.c + rdf_model.c + rdf_model_storage.c + rdf_node_common.c + rdf_node.c + rdf_parser.c + rdf_parser_raptor.c + rdf_query.c + rdf_query_rasqal.c + rdf_query_results.c + rdf_raptor.c + rdf_serializer.c + rdf_serializer_raptor.c + rdf_statement.c + rdf_statement_common.c + rdf_storage.c + rdf_storage_sql.c + rdf_stream.c + rdf_uri.c + rdf_utf8.c + ${digest_srcs} + ${internal_headers} +) + +if(HAVE_MEMCMP) + list(APPEND srcs memcmp.c) +endif() + +# Storages always built-in +list(APPEND srcs rdf_storage_list.c rdf_storage_hashes.c rdf_storage_trees.c) +if(STORAGE_FILE) + list(APPEND srcs rdf_storage_file.c) +endif() + +set(storage_libs ) +if(STORAGE_TSTORE) + list(APPEND srcs rdf_storage_tstore.c) +endif() +if(STORAGE_MYSQL) + list(APPEND srcs rdf_storage_mysql.c) + include_directories(${LIBMYSQL_INCLUDE_DIR}) + list(APPEND storage_libs ${LIBMYSQL_LIBRARIES}) + INSTALL(FILES mysql-v1.ttl mysql-v2.ttl + DESTINATION ${DATA_INSTALL_DIR} + ) +endif() +if(STORAGE_SQLITE) + list(APPEND srcs rdf_storage_sqlite.c) +endif() +if(STORAGE_POSTGRESQL) + list(APPEND srcs rdf_storage_postgresql.c) +endif() +if(STORAGE_VIRTUOSO) + list(APPEND srcs rdf_storage_virtuoso.c rdf_query_virtuoso.c rdf_storage_virtuoso_internal.h) +endif() + +add_library(rdf ${srcs}) + +target_link_libraries(rdf raptor2 rasqal ${storage_libs}) +if(WITH_THREADS) + target_link_libraries(rdf ${CMAKE_THREAD_LIBS_INIT}) +endif() + +SET_TARGET_PROPERTIES( + rdf + PROPERTIES + COMPILE_DEFINITIONS "LIBRDF_INTERNAL;PKGDATADIR=\"${CMAKE_INSTALL_PREFIX}/${DATA_INSTALL_DIR}\"" + PUBLIC_HEADER "${public_headers}" +) + +# Generate pkg-config metadata file +# +FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/redland.pc +"prefix=${CMAKE_INSTALL_PREFIX} +exec_prefix=\${prefix} +libdir=\${exec_prefix}/${LIB_INSTALL_DIR} +includedir=\${prefix}/${INCLUDE_INSTALL_DIR} + +have_raptor2_api=1 + +Name: ${PROJECT_DESCRIPTION} +Description: Redland RDF API and triple store library +Requires.private: raptor2 >= ${RAPTOR_MIN_VERSION}, rasqal >= ${RASQAL_MIN_VERSION}, rasqal <= 0.9.99 +Version: ${VERSION} +Libs: -L\${libdir} -lrdf +Libs.private: -ldl +Cflags: -I\${includedir} +") + +INSTALL(FILES + ${CMAKE_CURRENT_BINARY_DIR}/redland.pc + DESTINATION ${LIB_INSTALL_DIR}/pkgconfig +) + +INSTALL( + TARGETS rdf + EXPORT RedlandTargets + ARCHIVE DESTINATION ${LIB_INSTALL_DIR} + LIBRARY DESTINATION ${LIB_INSTALL_DIR} + RUNTIME DESTINATION ${BIN_INSTALL_DIR} + PUBLIC_HEADER DESTINATION ${INCLUDE_INSTALL_DIR} +) + +INSTALL(EXPORT RedlandTargets DESTINATION ${CMAKE_INSTALL_DIR}) + +# end redland/src/CMakeLists.txt -diff -urNb redland-1.0.17-orig/src/rdf_config_cmake.h.in redland-1.0.17-patched/src/rdf_config_cmake.h.in +diff -burN redland-1.0.17-orig/src/rdf_config_cmake.h.in redland-1.0.17-patched/src/rdf_config_cmake.h.in --- redland-1.0.17-orig/src/rdf_config_cmake.h.in 1970-01-01 01:00:00.000000000 +0100 -+++ redland-1.0.17-patched/src/rdf_config_cmake.h.in 2014-11-19 04:58:44.804581637 +0100 ++++ redland-1.0.17-patched/src/rdf_config_cmake.h.in 2014-11-26 14:03:18.519283855 +0100 @@ -0,0 +1,508 @@ +/* src/rdf_config_cmake.h.in.*/ + +/* Release version as a decimal */ +#define LIBRDF_VERSION_DECIMAL @REDLAND_VERSION_DECIMAL@ + +/* Major version number */ +#define LIBRDF_VERSION_MAJOR @REDLAND_VERSION_MAJOR@ + +/* Minor version number */ +#define LIBRDF_VERSION_MINOR @REDLAND_VERSION_MINOR@ + +/* Release version number */ +#define LIBRDF_VERSION_RELEASE @REDLAND_VERSION_RELEASE@ + +/* ---------- package information ------------ */ + +/* Name of package */ +#define PACKAGE @PROJECT_NAME@ + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "http://bugs.librdf.org/" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "@PROJECT_DESCRIPTION@" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "@PROJECT_DESCRIPTION@ @VERSION@" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME librdf + +/* Define to the home page for this package. */ +#define PACKAGE_URL "" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "@VERSION@" + +/* Version number of package */ +#define VERSION "@VERSION@" + +/* Define if building universal (internal helper macro) */ +#cmakedefine AC_APPLE_UNIVERSAL_BUILD + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +# undef WORDS_BIGENDIAN +# endif +#endif + +/* ------------ header availability --------------- */ + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_DB_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_DIRENT_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_DLD_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_DLFCN_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_DL_H + +/* Define if you have the _dyld_func_lookup function. */ +#cmakedefine HAVE_DYLD + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_ERRNO_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_FCNTL_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_GETOPT_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_INTTYPES_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_LIBPQ_FE_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_MACH_O_DYLD_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_MEMORY_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_PTHREAD_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SQLITE3_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SQLITE_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STDDEF_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STDINT_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STDLIB_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STRINGS_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STRING_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_DL_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_STAT_H + +/* Define to 1 if you have the header file. */ +#cmakedefine01 HAVE_SYS_TIME_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_TYPES_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_TIME_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_UNISTD_H + + +/* --------- feature availability ------------ */ + +/* Define so that glibc/gnulib argp.h does not typedef error_t. */ +#undef __error_t_defined + +/* Define to a type to use for `error_t' if it is not otherwise available. */ +#undef error_t + +/* BDB has close method with 2 args */ +#cmakedefine HAVE_BDB_CLOSE_2_ARGS + +/* BDB defines DBC */ +#cmakedefine HAVE_BDB_CURSOR + +/* BDB cursor method has 4 arguments */ +#cmakedefine HAVE_BDB_CURSOR_4_ARGS + +/* BDB defines DB_TXN */ +#cmakedefine HAVE_BDB_DB_TXN + +/* BDB has fd method with 2 args */ +#cmakedefine HAVE_BDB_FD_2_ARGS + +/* Have BDB hash support */ +#cmakedefine HAVE_BDB_HASH + +/* BDB has open method with 6 args */ +#cmakedefine HAVE_BDB_OPEN_6_ARGS + +/* BDB has open method with 7 args */ +#cmakedefine HAVE_BDB_OPEN_7_ARGS + +/* BDB has set_flags method */ +#cmakedefine HAVE_BDB_SET_FLAGS + +/* Define to 1 if the system has the type `byte'. */ +#cmakedefine HAVE_BYTE + +/* Define if you have the GNU dld library. */ +#cmakedefine HAVE_DLD + +/* Have local MD5 digest */ +#cmakedefine HAVE_LOCAL_MD5_DIGEST + +/* Have local RIPEMD160 digest */ +#cmakedefine HAVE_LOCAL_RIPEMD160_DIGEST + +/* Have local SHA1 digest */ +#cmakedefine HAVE_LOCAL_SHA1_DIGEST + +/* Define this if a modern libltdl is already installed */ +#cmakedefine HAVE_LTDL + +/* Define if you have the libdl library or equivalent. */ +#cmakedefine HAVE_LIBDL + +/* Define if libdlloader will be built on this platform */ +#cmakedefine HAVE_LIBDLLOADER + +/* have MYSQL_OPT_RECONNECT declared */ +#cmakedefine HAVE_MYSQL_OPT_RECONNECT + +/* Define if libtool can extract symbol lists from object files. */ +#cmakedefine HAVE_PRELOADED_SYMBOLS + +/* Define to 1 if the system has the type `u32'. */ +#cmakedefine HAVE_U32 + +/* Define to 1 if the system has the type `u64'. */ +#cmakedefine HAVE_U64 + +/* This value is set to 1 to indicate that the system argz facility works */ +#cmakedefine HAVE_WORKING_ARGZ + +/* Run time assertion checks. */ +#cmakedefine LIBRDF_ASSERT + +/* Print run time assertion check failure messages. */ +#cmakedefine LIBRDF_ASSERT_MESSAGES + +/* Define if the OS needs help to load dependent libraries for dlopen(). */ +#cmakedefine LTDL_DLOPEN_DEPLIBS + +/* Define to the system default library search path. */ +#cmakedefine LT_DLSEARCH_PATH + +/* The archive extension */ +#cmakedefine LT_LIBEXT + +/* The archive prefix */ +#cmakedefine LT_LIBPREFIX + +/* Define to the extension used for runtime loadable modules, say, ".so". */ +#cmakedefine LT_MODULE_EXT + +/* Define to the name of the environment variable that determines the run-time + module search path. */ +#cmakedefine LT_MODULE_PATH_VAR + +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#cmakedefine LT_OBJDIR + +/* Define to the shared library suffix, say, ".dylib". */ +#cmakedefine LT_SHARED_EXT + +/* Build storage backends as modules */ +#cmakedefine MODULAR_LIBRDF + +/* Define if dlsym() requires a leading underscore in symbol names. */ +#cmakedefine NEED_USCORE + +/* Define to 1 if your C compiler doesn't accept -c and -o together. */ +#cmakedefine NO_MINUS_C_MINUS_O + + +/* The size of `unsigned char', as computed by sizeof. */ +#define SIZEOF_UNSIGNED_CHAR @SIZEOF_UNSIGNED_CHAR@ + +/* The size of `unsigned int', as computed by sizeof. */ +#define SIZEOF_UNSIGNED_INT @SIZEOF_UNSIGNED_INT@ + +/* The size of `unsigned long', as computed by sizeof. */ +#define SIZEOF_UNSIGNED_LONG @SIZEOF_UNSIGNED_LONG@ + +/* The size of `unsigned long long', as computed by sizeof. */ +#define SIZEOF_UNSIGNED_LONG_LONG @SIZEOF_UNSIGNED_LONG_LONG@ + +/* define to SQLINTEGER if not defined in the ODBC headers */ +#cmakedefine SQLLEN + +/* define to SQLUINTEGER if not defined in the ODBC headers */ +#cmakedefine SQLULEN + +/* Define to 1 if you have the ANSI C header files. */ +#cmakedefine STDC_HEADERS + +/* Building file storage */ +#cmakedefine STORAGE_FILE + +/* Building hashes storage */ +#cmakedefine STORAGE_HASHES + +/* Building memory storage */ +#cmakedefine STORAGE_MEMORY + +/* Building MySQL storage */ +#cmakedefine STORAGE_MYSQL + +/* Building PostgreSQL storage */ +#cmakedefine STORAGE_POSTGRESQL + +/* Building SQLite storage */ +#cmakedefine STORAGE_SQLITE + +/* Building trees storage */ +#cmakedefine STORAGE_TREES + +/* Building 3store storage */ +#cmakedefine STORAGE_TSTORE + +/* Building Virtuoso storage */ +#cmakedefine STORAGE_VIRTUOSO + +/* Define to 1 if you can safely include both and . */ +#cmakedefine01 TIME_WITH_SYS_TIME + +/* Use POSIX threads */ +#cmakedefine WITH_THREADS + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +# undef WORDS_BIGENDIAN +# endif +#endif + +/* --------- function availability ----------- */ + +/* Define to 1 if you have the `argz_add' function. */ +#cmakedefine HAVE_ARGZ_ADD + +/* Define to 1 if you have the `argz_append' function. */ +#cmakedefine HAVE_ARGZ_APPEND + +/* Define to 1 if you have the `argz_count' function. */ +#cmakedefine HAVE_ARGZ_COUNT + +/* Define to 1 if you have the `argz_create_sep' function. */ +#cmakedefine HAVE_ARGZ_CREATE_SEP + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_ARGZ_H + +/* Define to 1 if you have the `argz_insert' function. */ +#cmakedefine HAVE_ARGZ_INSERT + +/* Define to 1 if you have the `argz_next' function. */ +#cmakedefine HAVE_ARGZ_NEXT + +/* Define to 1 if you have the `argz_stringify' function. */ +#cmakedefine HAVE_ARGZ_STRINGIFY + +/* Define to 1 if you have the `closedir' function. */ +#cmakedefine HAVE_CLOSEDIR + +/* BDB has dbopen method */ +#cmakedefine HAVE_DBOPEN + +/* BDB has db_create method */ +#cmakedefine HAVE_DB_CREATE + +/* BDB has db_open method */ +#cmakedefine HAVE_DB_OPEN + +/* Define to 1 if you have the declaration of `cygwin_conv_path', and to 0 if + you don't. */ +#cmakedefine HAVE_DECL_CYGWIN_CONV_PATH + +/* Define to 1 if you have the `dlerror' function. */ +#cmakedefine HAVE_DLERROR + +/* Define to 1 if the system has the type `error_t'. */ +#cmakedefine HAVE_ERROR_T + +/* Define to 1 if you have the `getenv' function. */ +#cmakedefine HAVE_GETENV + +/* Define to 1 if you have the `getopt' function. */ +#cmakedefine HAVE_GETOPT + +/* Define to 1 if you have the `getopt_long' function. */ +#cmakedefine HAVE_GETOPT_LONG + +/* Define to 1 if you have the `gettimeofday' function. */ +#cmakedefine HAVE_GETTIMEOFDAY + +#cmakedefine HAVE_ACCESS +#cmakedefine HAVE__ACCESS +#cmakedefine HAVE_SNPRINTF +#cmakedefine HAVE__SNPRINTF +#cmakedefine HAVE_STRCASECMP +#cmakedefine HAVE_STRICMP +#cmakedefine HAVE__STRICMP +#cmakedefine HAVE_STRNICMP +#cmakedefine HAVE__STRNICMP +#cmakedefine HAVE_VASPRINTF +#cmakedefine HAVE_VSNPRINTF +#cmakedefine HAVE__VSNPRINTF + +/* Define to 1 if you have the `memcmp' function. */ +#cmakedefine HAVE_MEMCMP + +/* Define to 1 if you have the `mkstemp' function. */ +#cmakedefine HAVE_MKSTEMP + +/* Define to 1 if you have the `mktemp' function. */ +#cmakedefine HAVE_MKTEMP +#cmakedefine HAVE__MKTEMP + +/* Define to 1 if you have the `opendir' function. */ +#cmakedefine HAVE_OPENDIR + +/* Define to 1 if you have the `readdir' function. */ +#cmakedefine HAVE_READDIR + +/* Define if you have the shl_load function. */ +#cmakedefine HAVE_SHL_LOAD + +/* Define to 1 if you have the `strlcat' function. */ +#cmakedefine HAVE_STRLCAT + +/* Define to 1 if you have the `strlcpy' function. */ +#cmakedefine HAVE_STRLCPY + +/* Define to 1 if you have the `tmpnam' function. */ +#cmakedefine HAVE_TMPNAM + +#cmakedefine HAVE_CLOSE +#cmakedefine HAVE__CLOSE + +#cmakedefine HAVE_UNLINK +#cmakedefine HAVE__UNLINK + + +/* --------- WIN32 config ----------- */ + +#ifdef WIN32 + +# ifdef __cplusplus + extern "C" { +# endif + +# define WIN32_LEAN_AND_MEAN 1 +# define _CRT_NONSTDC_NO_DEPRECATE +# define _CRT_SECURE_NO_DEPRECATE + + + /* MS names for these functions */ + // next line breaks build on wntmsci12 + //#define vsnprintf _vsnprintf +# if !defined(HAVE_SNPRINTF) && defined(HAVE__SNPRINTF) +# define snprintf _snprintf +# endif +# if !defined(HAVE_STRICMP) && defined(HAVE__STRICMP) +# define stricmp _stricmp +# endif +# if !defined(HAVE_STRNICMP) && defined(HAVE__STRNICMP) +# define strnicmp _strnicmp +# endif + +# if !defined(HAVE_CLOSE) && defined(HAVE__CLOSE) +# define close _close +# endif +# if !defined(HAVE_UNLINK) && defined(HAVE__UNLINK) +# define unlink _unlink +# endif +# if !defined(HAVE_MKTEMP) && defined(HAVE__MKTEMP) +# define mktemp _mktemp +# endif + +/* Define the following if you are calling the librdf from C# or any language which uses stdcall */ +#define USE_STDCALL_CALLBACKS 1 + +/* for access() which is POSIX but doesn't seem to have the defines in VC */ +# ifndef R_OK +# define F_OK 0 +# define R_OK 4 +# endif + +# ifdef _MSC_VER +# if (_MSC_VER >= 1300) && !defined(__func__) +# define __func__ __FUNCTION__ +# define HAVE___FUNC__ +# elif !defined(__func__) + /* better than nothing */ +# define rasqal_str(s) #s +# define __func__ "func@" __FILE__ ":" rasqal_str(__LINE__) +# endif +# endif + +# if !defined(HAVE_ACCESS) && defined(HAVE__ACCESS) +# define access(p,m) _access(p,m) +# endif + +# undef REDLAND_INLINE +# define REDLAND_INLINE __inline + +# include +# include +# include +# include + + /* get _isnan() since it is not in math.h */ +# include +# ifndef isnan +# define isnan(d) (_isnan(d)) +# endif + +# ifdef __cplusplus + } +# endif + +#endif -diff -urNb redland-1.0.17-orig/src/win32_rdf_config.h redland-1.0.17-patched/src/win32_rdf_config.h +diff -burN redland-1.0.17-orig/src/win32_rdf_config.h redland-1.0.17-patched/src/win32_rdf_config.h --- redland-1.0.17-orig/src/win32_rdf_config.h 2013-12-28 17:31:20.000000000 +0100 -+++ redland-1.0.17-patched/src/win32_rdf_config.h 2014-11-19 04:21:48.112581902 +0100 ++++ redland-1.0.17-patched/src/win32_rdf_config.h 2014-11-26 14:03:18.520283855 +0100 @@ -21,6 +21,7 @@ * */ +#if 0 #ifndef WIN32_RDF_CONFIG_H #define WIN32_RDF_CONFIG_H @@ -300,3 +301,4 @@ #endif #endif +#endif -diff -urNb redland-1.0.17-orig/src/win32_rdf_config.h.in redland-1.0.17-patched/src/win32_rdf_config.h.in +diff -burN redland-1.0.17-orig/src/win32_rdf_config.h.in redland-1.0.17-patched/src/win32_rdf_config.h.in --- redland-1.0.17-orig/src/win32_rdf_config.h.in 2013-04-05 19:17:40.000000000 +0200 -+++ redland-1.0.17-patched/src/win32_rdf_config.h.in 2014-11-19 04:20:56.204581908 +0100 ++++ redland-1.0.17-patched/src/win32_rdf_config.h.in 2014-11-26 14:03:18.521283855 +0100 @@ -21,6 +21,7 @@ * */ +#if 0 #ifndef WIN32_RDF_CONFIG_H #define WIN32_RDF_CONFIG_H @@ -300,3 +301,4 @@ #endif #endif +#endif diff --git a/CMakeExternals/redland.cmake b/CMakeExternals/redland.cmake index cf3f947d00..e5b110928c 100644 --- a/CMakeExternals/redland.cmake +++ b/CMakeExternals/redland.cmake @@ -1,44 +1,44 @@ #----------------------------------------------------------------------------- # redland #----------------------------------------------------------------------------- if(MITK_USE_redland) # Sanity checks if(DEFINED redland_DIR AND NOT EXISTS ${redland_DIR}) message(FATAL_ERROR "redland_DIR variable is defined but corresponds to non-existing directory") endif() set(proj redland) set(proj_DEPENDENCIES ${raptor2_DEPENDS} ${rasqal_DEPENDS}) set(${proj}_DEPENDS ${proj}) if(NOT DEFINED redland_DIR) ExternalProject_Add(${proj} SOURCE_DIR ${CMAKE_BINARY_DIR}/${proj}-src BINARY_DIR ${proj}-build INSTALL_DIR ${REDLAND_INSTALL_DIR} PREFIX ${proj}-cmake URL ${MITK_THIRDPARTY_DOWNLOAD_PREFIX_URL}/redland-1.0.17.tar.gz URL_MD5 e5be03eda13ef68aabab6e42aa67715e PATCH_COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_LIST_DIR}/redland-1.0.17.patch CMAKE_GENERATOR ${gen} CMAKE_ARGS ${ep_common_args} -DCMAKE_INSTALL_PREFIX:PATH= -DBUILD_SHARED_LIBS:BOOL=ON -DWITH_THREADS:BOOL=OFF -DCMAKE_PREFIX_PATH:STRING=${REDLAND_INSTALL_DIR} DEPENDS ${proj_DEPENDENCIES} ) - set(${proj}_DIR ${CMAKE_CURRENT_BINARY_DIR}/${REDLAND_INSTALL_DIR}/lib/redland/cmake/) + set(${proj}_DIR ${REDLAND_INSTALL_DIR}/lib/redland/cmake/) else() mitkMacroEmptyExternalProject(${proj} "${proj_DEPENDENCIES}") endif() endif() diff --git a/SuperBuild.cmake b/SuperBuild.cmake index 60ed263b8b..d67d89cbd1 100644 --- a/SuperBuild.cmake +++ b/SuperBuild.cmake @@ -1,524 +1,525 @@ #----------------------------------------------------------------------------- # Convenient macro allowing to download a file #----------------------------------------------------------------------------- if(NOT MITK_THIRDPARTY_DOWNLOAD_PREFIX_URL) set(MITK_THIRDPARTY_DOWNLOAD_PREFIX_URL http://mitk.org/download/thirdparty) endif() macro(downloadFile url dest) file(DOWNLOAD ${url} ${dest} STATUS status) list(GET status 0 error_code) list(GET status 1 error_msg) if(error_code) message(FATAL_ERROR "error: Failed to download ${url} - ${error_msg}") endif() endmacro() #----------------------------------------------------------------------------- # MITK Prerequisites #----------------------------------------------------------------------------- if(UNIX AND NOT APPLE) include(mitkFunctionCheckPackageHeader) # Check for libxt-dev mitkFunctionCheckPackageHeader(StringDefs.h libxt-dev /usr/include/X11/) # Check for libtiff4-dev mitkFunctionCheckPackageHeader(tiff.h libtiff4-dev) # Check for libwrap0-dev mitkFunctionCheckPackageHeader(tcpd.h libwrap0-dev) endif() # We need a proper patch program. On Linux and MacOS, we assume # that "patch" is available. On Windows, we download patch.exe # if not patch program is found. find_program(PATCH_COMMAND patch) if((NOT PATCH_COMMAND OR NOT EXISTS ${PATCH_COMMAND}) AND WIN32) downloadFile(${MITK_THIRDPARTY_DOWNLOAD_PREFIX_URL}/patch.exe ${CMAKE_CURRENT_BINARY_DIR}/patch.exe) find_program(PATCH_COMMAND patch ${CMAKE_CURRENT_BINARY_DIR}) endif() if(NOT PATCH_COMMAND) message(FATAL_ERROR "No patch program found.") endif() #----------------------------------------------------------------------------- # Qt options for external projects and MITK #----------------------------------------------------------------------------- if(MITK_USE_QT) set(qt_project_args -DDESIRED_QT_VERSION:STRING=${DESIRED_QT_VERSION}) else() set(qt_project_args ) endif() if(MITK_USE_Qt4) list(APPEND qt_project_args -DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE} ) endif() #----------------------------------------------------------------------------- # ExternalProjects #----------------------------------------------------------------------------- set(external_projects ZLIB Python Numpy tinyxml GLUT ANN CppUnit GLEW VTK ACVD GDCM OpenCV Poco ITK Boost DCMTK CTK SOFA MITKData Qwt PCRE Swig SimpleITK Eigen raptor2 rasqal redland ) # Qxt supports Qt5. We need to also support it in QxtCMakeLists.txt #if(MITK_USE_Qt4) list(APPEND external_projects Qxt) #endif() # These are "hard" dependencies and always set to ON set(MITK_USE_tinyxml 1) set(MITK_USE_ANN 1) set(MITK_USE_Eigen 1) set(MITK_USE_GLEW 1) set(MITK_USE_GDCM 1) set(MITK_USE_ITK 1) set(MITK_USE_VTK 1) # Semi-hard dependencies, enabled by user-controlled variables if(MITK_USE_QT) set(MITK_USE_Qwt 1) #if(MITK_USE_Qt4) set(MITK_USE_Qxt 1) #TODO: Check how Qxt builds with Qt 5 #endif() endif() if(MITK_USE_Redland) set(REDLAND_INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/Redland-install) set(MITK_USE_raptor2 1) set(MITK_USE_PCRE 1) set(MITK_USE_rasqal 1) set(MITK_USE_redland 1) endif() if(MITK_USE_SOFA) set(MITK_USE_GLUT 1) endif() if(NOT MITK_USE_SYSTEM_PYTHON) set(MITK_USE_ZLIB 1) endif() if(MITK_USE_SimpleITK OR MITK_USE_Python) set(MITK_USE_SWIG 1) if(UNIX) set(MITK_USE_PCRE 1) endif() endif() # A list of "nice" external projects, playing well together with CMake set(nice_external_projects ${external_projects}) list(REMOVE_ITEM nice_external_projects Boost) foreach(proj ${nice_external_projects}) if(MITK_USE_${proj}) set(EXTERNAL_${proj}_DIR "${${proj}_DIR}" CACHE PATH "Path to ${proj} build directory") mark_as_advanced(EXTERNAL_${proj}_DIR) if(EXTERNAL_${proj}_DIR) set(${proj}_DIR ${EXTERNAL_${proj}_DIR}) endif() endif() endforeach() if(MITK_USE_Boost) set(EXTERNAL_BOOST_ROOT "${BOOST_ROOT}" CACHE PATH "Path to Boost directory") mark_as_advanced(EXTERNAL_BOOST_ROOT) if(EXTERNAL_BOOST_ROOT) set(BOOST_ROOT ${EXTERNAL_BOOST_ROOT}) endif() endif() # Setup file for setting custom ctest vars configure_file( CMake/SuperbuildCTestCustom.cmake.in ${MITK_BINARY_DIR}/CTestCustom.cmake @ONLY ) if(BUILD_TESTING) set(EXTERNAL_MITK_DATA_DIR "${MITK_DATA_DIR}" CACHE PATH "Path to the MITK data directory") mark_as_advanced(EXTERNAL_MITK_DATA_DIR) if(EXTERNAL_MITK_DATA_DIR) set(MITK_DATA_DIR ${EXTERNAL_MITK_DATA_DIR}) endif() endif() # Look for git early on, if needed if((BUILD_TESTING AND NOT EXTERNAL_MITK_DATA_DIR) OR (MITK_USE_CTK AND NOT EXTERNAL_CTK_DIR)) find_package(Git REQUIRED) endif() #----------------------------------------------------------------------------- # External project settings #----------------------------------------------------------------------------- include(ExternalProject) set(ep_base "${CMAKE_BINARY_DIR}/CMakeExternals") set_property(DIRECTORY PROPERTY EP_BASE ${ep_base}) set(ep_install_dir ${ep_base}/Install) #set(ep_build_dir ${ep_base}/Build) set(ep_source_dir ${ep_base}/Source) #set(ep_parallelism_level) set(ep_build_shared_libs ON) set(ep_build_testing OFF) # Compute -G arg for configuring external projects with the same CMake generator: if(CMAKE_EXTRA_GENERATOR) set(gen "${CMAKE_EXTRA_GENERATOR} - ${CMAKE_GENERATOR}") else() set(gen "${CMAKE_GENERATOR}") endif() # Use this value where semi-colons are needed in ep_add args: set(sep "^^") ## if(MSVC_VERSION) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /bigobj /MP") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj /MP") endif() set(ep_common_args -DBUILD_TESTING:BOOL=${ep_build_testing} -DCMAKE_INSTALL_PREFIX:PATH=${ep_install_dir} -DCMAKE_PREFIX_PATH:PATH=${CMAKE_PREFIX_PATH} -DBUILD_SHARED_LIBS:BOOL=ON -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} -DCMAKE_C_COMPILER:FILEPATH=${CMAKE_C_COMPILER} -DCMAKE_CXX_COMPILER:FILEPATH=${CMAKE_CXX_COMPILER} -DCMAKE_C_FLAGS:STRING=${CMAKE_C_FLAGS} -DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS} #debug flags -DCMAKE_CXX_FLAGS_DEBUG:STRING=${CMAKE_CXX_FLAGS_DEBUG} -DCMAKE_C_FLAGS_DEBUG:STRING=${CMAKE_C_FLAGS_DEBUG} #release flags -DCMAKE_CXX_FLAGS_RELEASE:STRING=${CMAKE_CXX_FLAGS_RELEASE} -DCMAKE_C_FLAGS_RELEASE:STRING=${CMAKE_C_FLAGS_RELEASE} #relwithdebinfo -DCMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -DCMAKE_C_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_C_FLAGS_RELWITHDEBINFO} #link flags -DCMAKE_EXE_LINKER_FLAGS:STRING=${CMAKE_EXE_LINKER_FLAGS} -DCMAKE_SHARED_LINKER_FLAGS:STRING=${CMAKE_SHARED_LINKER_FLAGS} -DCMAKE_MODULE_LINKER_FLAGS:STRING=${CMAKE_MODULE_LINKER_FLAGS} ) # Pass the CMAKE_OSX variables to external projects if(APPLE) set(MAC_OSX_ARCHITECTURE_ARGS -DCMAKE_OSX_ARCHITECTURES:PATH=${CMAKE_OSX_ARCHITECTURES} -DCMAKE_OSX_DEPLOYMENT_TARGET:PATH=${CMAKE_OSX_DEPLOYMENT_TARGET} -DCMAKE_OSX_SYSROOT:PATH=${CMAKE_OSX_SYSROOT} ) set(ep_common_args ${MAC_OSX_ARCHITECTURE_ARGS} ${ep_common_args} ) endif() # Include external projects foreach(p ${external_projects}) include(CMakeExternals/${p}.cmake) endforeach() #----------------------------------------------------------------------------- # Set superbuild boolean args #----------------------------------------------------------------------------- set(mitk_cmake_boolean_args BUILD_SHARED_LIBS WITH_COVERAGE BUILD_TESTING MITK_USE_QT MITK_BUILD_ALL_PLUGINS MITK_BUILD_ALL_APPS MITK_BUILD_TUTORIAL # Deprecated. Use MITK_BUILD_EXAMPLES instead MITK_BUILD_EXAMPLES MITK_USE_ACVD MITK_USE_CppUnit MITK_USE_GLEW MITK_USE_Boost MITK_USE_SYSTEM_Boost MITK_USE_BLUEBERRY MITK_USE_CTK MITK_USE_DCMTK MITK_USE_OpenCV MITK_USE_Poco MITK_USE_Redland MITK_USE_SOFA MITK_USE_Python MITK_USE_OpenCL MITK_ENABLE_PIC_READER ) #----------------------------------------------------------------------------- # Create the final variable containing superbuild boolean args #----------------------------------------------------------------------------- set(mitk_superbuild_boolean_args) foreach(mitk_cmake_arg ${mitk_cmake_boolean_args}) list(APPEND mitk_superbuild_boolean_args -D${mitk_cmake_arg}:BOOL=${${mitk_cmake_arg}}) endforeach() if(MITK_BUILD_ALL_PLUGINS) list(APPEND mitk_superbuild_boolean_args -DBLUEBERRY_BUILD_ALL_PLUGINS:BOOL=ON) endif() #----------------------------------------------------------------------------- # MITK Utilities #----------------------------------------------------------------------------- set(proj MITK-Utilities) ExternalProject_Add(${proj} DOWNLOAD_COMMAND "" CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND "" DEPENDS # Mandatory dependencies ${tinyxml_DEPENDS} ${ANN_DEPENDS} ${VTK_DEPENDS} ${ITK_DEPENDS} # Optionnal dependencies ${ACVD_DEPENDS} ${CppUnit_DEPENDS} ${Eigen_DEPENDS} ${GLUT_DEPENDS} ${GLEW_DEPENDS} ${Boost_DEPENDS} ${CTK_DEPENDS} ${DCMTK_DEPENDS} ${OpenCV_DEPENDS} ${Poco_DEPENDS} ${PCRE_DEPENDS} ${Swig_DEPENDS} ${raptor2_DEPENDS} ${rasqal_DEPENDS} ${redland_DEPENDS} ${SOFA_DEPENDS} ${MITK-Data_DEPENDS} ${Qwt_DEPENDS} ${Qxt_DEPENDS} ${ZLIB_DEPENDS} ${SimpleITK_DEPENDS} ${Numpy_DEPENDS} ) #----------------------------------------------------------------------------- # Additional MITK CXX/C Flags #----------------------------------------------------------------------------- set(MITK_ADDITIONAL_C_FLAGS "" CACHE STRING "Additional C Flags for MITK") set(MITK_ADDITIONAL_C_FLAGS_RELEASE "" CACHE STRING "Additional Release C Flags for MITK") set(MITK_ADDITIONAL_C_FLAGS_DEBUG "" CACHE STRING "Additional Debug C Flags for MITK") mark_as_advanced(MITK_ADDITIONAL_C_FLAGS MITK_ADDITIONAL_C_FLAGS_DEBUG MITK_ADDITIONAL_C_FLAGS_RELEASE) set(MITK_ADDITIONAL_CXX_FLAGS "" CACHE STRING "Additional CXX Flags for MITK") set(MITK_ADDITIONAL_CXX_FLAGS_RELEASE "" CACHE STRING "Additional Release CXX Flags for MITK") set(MITK_ADDITIONAL_CXX_FLAGS_DEBUG "" CACHE STRING "Additional Debug CXX Flags for MITK") mark_as_advanced(MITK_ADDITIONAL_CXX_FLAGS MITK_ADDITIONAL_CXX_FLAGS_DEBUG MITK_ADDITIONAL_CXX_FLAGS_RELEASE) set(MITK_ADDITIONAL_EXE_LINKER_FLAGS "" CACHE STRING "Additional exe linker flags for MITK") set(MITK_ADDITIONAL_SHARED_LINKER_FLAGS "" CACHE STRING "Additional shared linker flags for MITK") set(MITK_ADDITIONAL_MODULE_LINKER_FLAGS "" CACHE STRING "Additional module linker flags for MITK") mark_as_advanced(MITK_ADDITIONAL_EXE_LINKER_FLAGS MITK_ADDITIONAL_SHARED_LINKER_FLAGS MITK_ADDITIONAL_MODULE_LINKER_FLAGS) #----------------------------------------------------------------------------- # MITK Configure #----------------------------------------------------------------------------- if(MITK_INITIAL_CACHE_FILE) set(mitk_initial_cache_arg -C "${MITK_INITIAL_CACHE_FILE}") endif() set(mitk_optional_cache_args ) foreach(type RUNTIME ARCHIVE LIBRARY) if(DEFINED CTK_PLUGIN_${type}_OUTPUT_DIRECTORY) list(APPEND mitk_optional_cache_args -DCTK_PLUGIN_${type}_OUTPUT_DIRECTORY:PATH=${CTK_PLUGIN_${type}_OUTPUT_DIRECTORY}) endif() endforeach() # Optional python variables if(MITK_USE_Python) list(APPEND mitk_optional_cache_args -DPYTHON_EXECUTABLE:FILEPATH=${PYTHON_EXECUTABLE} -DPYTHON_INCLUDE_DIR:PATH=${PYTHON_INCLUDE_DIR} -DPYTHON_LIBRARY:FILEPATH=${PYTHON_LIBRARY} -DPYTHON_INCLUDE_DIR2:PATH=${PYTHON_INCLUDE_DIR2} -DMITK_USE_SYSTEM_PYTHON:BOOL=${MITK_USE_SYSTEM_PYTHON} -DMITK_BUILD_org.mitk.gui.qt.python:BOOL=ON ) if( NOT MITK_USE_SYSTEM_PYTHON ) list(APPEND mitk_optional_cache_args # Folders are needed to create an installer -DPython_DIR:PATH=${Python_DIR} -DNumpy_DIR:PATH=${Numpy_DIR} ) endif() endif() set(proj MITK-Configure) ExternalProject_Add(${proj} LIST_SEPARATOR ^^ DOWNLOAD_COMMAND "" CMAKE_GENERATOR ${gen} CMAKE_CACHE_ARGS # --------------- Build options ---------------- -DBUILD_TESTING:BOOL=${ep_build_testing} -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_BINARY_DIR}/MITK-build/install -DBUILD_SHARED_LIBS:BOOL=ON -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} # --------------- Compile options ---------------- -DCMAKE_C_COMPILER:FILEPATH=${CMAKE_C_COMPILER} -DCMAKE_CXX_COMPILER:FILEPATH=${CMAKE_CXX_COMPILER} "-DCMAKE_C_FLAGS:STRING=${CMAKE_C_FLAGS} ${MITK_ADDITIONAL_C_FLAGS}" "-DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS} ${MITK_ADDITIONAL_CXX_FLAGS}" # debug flags "-DCMAKE_CXX_FLAGS_DEBUG:STRING=${CMAKE_CXX_FLAGS_DEBUG} ${MITK_ADDITIONAL_CXX_FLAGS_DEBUG}" "-DCMAKE_C_FLAGS_DEBUG:STRING=${CMAKE_C_FLAGS_DEBUG} ${MITK_ADDITIONAL_C_FLAGS_DEBUG}" # release flags "-DCMAKE_CXX_FLAGS_RELEASE:STRING=${CMAKE_CXX_FLAGS_RELEASE} ${MITK_ADDITIONAL_CXX_FLAGS_RELEASE}" "-DCMAKE_C_FLAGS_RELEASE:STRING=${CMAKE_C_FLAGS_RELEASE} ${MITK_ADDITIONAL_C_FLAGS_RELEASE}" # relwithdebinfo -DCMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -DCMAKE_C_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_C_FLAGS_RELWITHDEBINFO} # link flags "-DCMAKE_EXE_LINKER_FLAGS:STRING=${CMAKE_EXE_LINKER_FLAGS} ${MITK_ADDITIONAL_EXE_LINKER_FLAGS}" "-DCMAKE_SHARED_LINKER_FLAGS:STRING=${CMAKE_SHARED_LINKER_FLAGS} ${MITK_ADDITIONAL_SHARED_LINKER_FLAGS}" "-DCMAKE_MODULE_LINKER_FLAGS:STRING=${CMAKE_MODULE_LINKER_FLAGS} ${MITK_ADDITIONAL_MODULE_LINKER_FLAGS}" # Output directories -DMITK_CMAKE_LIBRARY_OUTPUT_DIRECTORY:PATH=${MITK_CMAKE_LIBRARY_OUTPUT_DIRECTORY} -DMITK_CMAKE_RUNTIME_OUTPUT_DIRECTORY:PATH=${MITK_CMAKE_RUNTIME_OUTPUT_DIRECTORY} -DMITK_CMAKE_ARCHIVE_OUTPUT_DIRECTORY:PATH=${MITK_CMAKE_ARCHIVE_OUTPUT_DIRECTORY} # ------------- Boolean build options -------------- ${mitk_superbuild_boolean_args} ${mitk_optional_cache_args} -DMITK_USE_SUPERBUILD:BOOL=OFF -DMITK_BUILD_CONFIGURATION:STRING=${MITK_BUILD_CONFIGURATION} -DCTEST_USE_LAUNCHERS:BOOL=${CTEST_USE_LAUNCHERS} # ----------------- Miscellaneous --------------- -DMITK_CTEST_SCRIPT_MODE:STRING=${MITK_CTEST_SCRIPT_MODE} -DMITK_SUPERBUILD_BINARY_DIR:PATH=${MITK_BINARY_DIR} -DMITK_MODULES_TO_BUILD:INTERNAL=${MITK_MODULES_TO_BUILD} ${qt_project_args} -DMITK_ACCESSBYITK_INTEGRAL_PIXEL_TYPES:STRING=${MITK_ACCESSBYITK_INTEGRAL_PIXEL_TYPES} -DMITK_ACCESSBYITK_FLOATING_PIXEL_TYPES:STRING=${MITK_ACCESSBYITK_FLOATING_PIXEL_TYPES} -DMITK_ACCESSBYITK_COMPOSITE_PIXEL_TYPES:STRING=${MITK_ACCESSBYITK_COMPOSITE_PIXEL_TYPES} -DMITK_ACCESSBYITK_VECTOR_PIXEL_TYPES:STRING=${MITK_ACCESSBYITK_VECTOR_PIXEL_TYPES} -DMITK_ACCESSBYITK_DIMENSIONS:STRING=${MITK_ACCESSBYITK_DIMENSIONS} # --------------- External project dirs --------------- -DCppMicroServices_DIR:PATH=${CppMicroServices_DIR} -DMITK_KWSTYLE_EXECUTABLE:FILEPATH=${MITK_KWSTYLE_EXECUTABLE} -DCTK_DIR:PATH=${CTK_DIR} -DDCMTK_DIR:PATH=${DCMTK_DIR} -DEigen_DIR:PATH=${Eigen_DIR} -Dtinyxml_DIR:PATH=${tinyxml_DIR} -DGLUT_DIR:PATH=${GLUT_DIR} -DGLEW_DIR:PATH=${GLEW_DIR} -DANN_DIR:PATH=${ANN_DIR} -DCppUnit_DIR:PATH=${CppUnit_DIR} -DVTK_DIR:PATH=${VTK_DIR} # FindVTK expects VTK_DIR -DITK_DIR:PATH=${ITK_DIR} # FindITK expects ITK_DIR -DACVD_DIR:PATH=${ACVD_DIR} -DOpenCV_DIR:PATH=${OpenCV_DIR} -DPoco_DIR:PATH=${Poco_DIR} -DPCRE_DIR:PATH=${PCRE_DIR} -DSwig_DIR:PATH=${Swig_DIR} -DRaptor2_DIR:PATH=${raptor2_DIR} -DRasqal_DIR:PATH=${rasqal_DIR} -DRedland_DIR:PATH=${redland_DIR} + -DREDLAND_INSTALL_DIR:PATH=${REDLAND_INSTALL_DIR} -DSOFA_DIR:PATH=${SOFA_DIR} -DGDCM_DIR:PATH=${GDCM_DIR} -DBOOST_ROOT:PATH=${BOOST_ROOT} -DMITK_USE_Boost_LIBRARIES:STRING=${MITK_USE_Boost_LIBRARIES} -DMITK_DATA_DIR:PATH=${MITK_DATA_DIR} -DQwt_DIR:PATH=${Qwt_DIR} -DQxt_DIR:PATH=${Qxt_DIR} -DSimpleITK_DIR:PATH=${SimpleITK_DIR} -DNumpy_DIR:PATH=${Numpy_DIR} CMAKE_ARGS ${mitk_initial_cache_arg} ${MAC_OSX_ARCHITECTURE_ARGS} SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR} BINARY_DIR ${CMAKE_BINARY_DIR}/MITK-build BUILD_COMMAND "" INSTALL_COMMAND "" DEPENDS MITK-Utilities ) #----------------------------------------------------------------------------- # MITK #----------------------------------------------------------------------------- if(CMAKE_GENERATOR MATCHES ".*Makefiles.*") set(mitk_build_cmd "$(MAKE)") else() set(mitk_build_cmd ${CMAKE_COMMAND} --build ${CMAKE_CURRENT_BINARY_DIR}/MITK-build --config ${CMAKE_CFG_INTDIR}) endif() if(NOT DEFINED SUPERBUILD_EXCLUDE_MITKBUILD_TARGET OR NOT SUPERBUILD_EXCLUDE_MITKBUILD_TARGET) set(MITKBUILD_TARGET_ALL_OPTION "ALL") else() set(MITKBUILD_TARGET_ALL_OPTION "") endif() add_custom_target(MITK-build ${MITKBUILD_TARGET_ALL_OPTION} COMMAND ${mitk_build_cmd} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/MITK-build DEPENDS MITK-Configure ) #----------------------------------------------------------------------------- # Custom target allowing to drive the build of the MITK project itself #----------------------------------------------------------------------------- add_custom_target(MITK COMMAND ${mitk_build_cmd} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/MITK-build )