X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=CMakeLists.txt;h=93b62fd5d75099dc56840625f40a6a25c1c00e0a;hb=adb38e2972e7c2e287e73c7b03db344807729219;hp=e4f2e37e0ef5d5cbc9b60406c5414ede44546a0c;hpb=7166b8d4db14d08a7df0dec5f98988eab186e941;p=cpPlugins.git diff --git a/CMakeLists.txt b/CMakeLists.txt index e4f2e37..93b62fd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,124 +1,75 @@ -CMAKE_MINIMUM_REQUIRED(VERSION 2.6) +CMAKE_MINIMUM_REQUIRED(VERSION 2.8) +INCLUDE(cmake/cpPlugins_Policies.cmake) +INCLUDE(cmake/cpPlugins_Functions.cmake) -# for CMake 2.6 corrected behaviour (see "cmake --help-policy CMP0003") -IF( - COMMAND cmake_policy AND - ${CMAKE_MAJOR_VERSION} EQUAL 2 AND - ${CMAKE_MINOR_VERSION} GREATER 4 - ) - CMAKE_POLICY(SET CMP0003 NEW) - CMAKE_POLICY(SET CMP0005 NEW) - CMAKE_POLICY(SET CMP0011 NEW) - CMAKE_POLICY(SET CMP0012 NEW) -ENDIF( - COMMAND cmake_policy AND - ${CMAKE_MAJOR_VERSION} EQUAL 2 AND - ${CMAKE_MINOR_VERSION} GREATER 4 - ) - -## ================ -## = Project name = -## ================ +## ================== +## == Project name == +## ================== PROJECT(cpPlugins) -SET(prj_MAJOR_VERSION "0") -SET(prj_MINOR_VERSION "0") -SET(prj_RELEASE_VERSION "1") -SET( - prj_VERSION - "${prj_MAJOR_VERSION}.${prj_MINOR_VERSION}.${prj_RELEASE_VERSION}" - ) +SET(prj_MAJ_VER "0") +SET(prj_MIN_VER "1") +SET(prj_REL_VER "0") +SET(prj_VER "${prj_MAJ_VER}.${prj_MIN_VER}.${prj_REL_VER}") +SET(prj_sVER "${prj_MAJ_VER}") -## =========== -## = Options = -## =========== +## ============= +## == Options == +## ============= -OPTION(USE_QT4 "Build Qt4-based code" OFF) OPTION(BUILD_EXAMPLES "Build examples" OFF) -## ======================== -## = Packages and options = -## ======================== - -INCLUDE(GenerateExportHeader) - -FIND_PACKAGE(ITK REQUIRED) -INCLUDE(${ITK_USE_FILE}) - -FIND_PACKAGE(VTK REQUIRED) -INCLUDE(${VTK_USE_FILE}) +## ========================== +## == Packages and options == +## ========================== -IF(USE_QT4) - IF(NOT WIN32) - FIND_LIBRARY( - VTK_USES_QT - NAMES vtkGUISupportQt-${VTK_MAJOR_VERSION}.${VTK_MINOR_VERSION} - HINTS ${VTK_LIBRARY_DIRS} - PATHS /usr/lib /usr/local/lib /usr/lib64 /usr/local/lib64 - ) - FIND_LIBRARY( - VTK_USES_QT_OPENGL - vtkGUISupportQtOpenGL-${VTK_MAJOR_VERSION}.${VTK_MINOR_VERSION} - HINTS ${VTK_LIBRARY_DIRS} - PATHS /usr/lib /usr/local/lib /usr/lib64 /usr/local/lib64 - ) - MARK_AS_ADVANCED(FORCE VTK_USES_QT) - MARK_AS_ADVANCED(FORCE VTK_USES_QT_OPENGL) - IF(VTK_USES_QT AND VTK_USES_QT_OPENGL) - FIND_PACKAGE(Qt4 REQUIRED) - INCLUDE(${QT_USE_FILE}) - ELSE(VTK_USES_QT AND VTK_USES_QT_OPENGL) - MESSAGE(FATAL_ERROR "VTK ${VTK_MAJOR_VERSION}.${VTK_MINOR_VERSION} was not compiled with Qt4 support!") - ENDIF(VTK_USES_QT AND VTK_USES_QT_OPENGL) - ELSE(NOT WIN32) - FIND_PACKAGE(Qt4 REQUIRED) - INCLUDE(${QT_USE_FILE}) - ENDIF(NOT WIN32) -ENDIF(USE_QT4) +INCLUDE(cmake/cpPlugins_Options.cmake) +INCLUDE(cmake/cpPlugins_KitwareTools.cmake) +INCLUDE(cmake/cpPlugins_Qt4Tools.cmake) -## ================================================ -## = Do not allow to build inside the source tree = -## ================================================ +## =================================== +## == Libraries to dynamically load == +## =================================== -IF(PROJECT_BINARY_DIR STREQUAL ${PROJECT_SOURCE_DIR}) - MESSAGE(FATAL_ERROR "Building in the source tree is not allowed") -ENDIF(PROJECT_BINARY_DIR STREQUAL ${PROJECT_SOURCE_DIR}) +SET(cpPlugins_DynLibs) +FOREACH(i ${VTK_LIBRARIES}) + GET_TARGET_PROPERTY(lib_${i} ${i} LOCATION) + LIST(APPEND cpPlugins_DynLibs ${lib_${i}}) +ENDFOREACH(i) +FOREACH(i ${ITK_LIBRARIES}) + GET_TARGET_PROPERTY(lib_${i} ${i} LOCATION) + LIST(APPEND cpPlugins_DynLibs ${lib_${i}}) +ENDFOREACH(i) -## ===================================== -## = Where to put executables and libs = -## ===================================== - -SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}) -SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}) -MARK_AS_ADVANCED( - CMAKE_BACKWARDS_COMPATIBILITY - EXECUTABLE_OUTPUT_PATH - LIBRARY_OUTPUT_PATH - ) - -## ============================== -## = Subdirs containing headers = -## ============================== +## ========================= +## == Include directories == +## ========================= INCLUDE_DIRECTORIES( + ${PROJECT_SOURCE_DIR} + ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR}/lib - ${PROJECT_SOURCE_DIR}/lib/third_party ${PROJECT_BINARY_DIR}/lib + ${PROJECT_SOURCE_DIR}/lib/cpPlugins_Instances + ${PROJECT_BINARY_DIR}/lib/cpPlugins_Instances + ${PROJECT_SOURCE_DIR}/plugins + ${PROJECT_BINARY_DIR}/plugins + ${PROJECT_SOURCE_DIR}/lib/third_party ${PROJECT_BINARY_DIR}/lib/third_party + ${PROJECT_SOURCE_DIR}/lib/third_party/dirent + ${PROJECT_BINARY_DIR}/lib/third_party/dirent + ${PROJECT_SOURCE_DIR}/lib/ItkVtkGlue + ${PROJECT_BINARY_DIR}/lib/ItkVtkGlue ) -IF(WIN32) - INCLUDE_DIRECTORIES( - ${PROJECT_SOURCE_DIR}/lib/third_party/glext - ) -ENDIF(WIN32) -## =========================== -## = Subdirs containing code = -## =========================== +## ============================= +## == Subdirs containing code == +## ============================= SUBDIRS( cmake lib + plugins appli )