CMAKE_MINIMUM_REQUIRED(VERSION 2.8) ## ============ ## = Policies = ## ============ SET( policies CMP0015 CMP0020 CMP0042 ) FOREACH(policy ${policies}) IF(POLICY ${policy}) CMAKE_POLICY(SET ${policy} NEW) ENDIF(POLICY ${policy}) ENDFOREACH(policy) ## ================ ## = Project name = ## ================ PROJECT(cpMesh) ## =========== ## = Options = ## =========== ## OPTION(BUILD_EXAMPLES "Build demos" OFF) OPTION(BUILD_SHARED_LIBS "Build shared libraries" ON) OPTION(BUILD_FINAL_APPLICATION "Build final application" ON) IF(BUILD_SHARED_LIBS) SET(cpm_LIBRARY_TYPE SHARED) ELSE(BUILD_SHARED_LIBS) SET(cpm_LIBRARY_TYPE STATIC) ENDIF(BUILD_SHARED_LIBS) ## ============ ## = Packages = ## ============ # Prepare header to build shared libs (windows) INCLUDE(GenerateExportHeader) # Find ITK and VTK FIND_PACKAGE(ITK REQUIRED) FIND_PACKAGE(VTK REQUIRED) INCLUDE(${ITK_USE_FILE}) INCLUDE(${VTK_USE_FILE}) # Do not use itk-vtk glue --> problems ahead!!! IF(ITKVtkGlue_LOADED) MESSAGE(FATAL_ERROR "ITKVtkGlue module is available. Please re-compile your ITK without it. It could lead to nasty compilation problems... Just waiting for Kitware to solve it.") ENDIF(ITKVtkGlue_LOADED) SET(QT4_FOUND "0") IF(BUILD_FINAL_APPLICATION) FIND_PACKAGE(Qt4 REQUIRED) INCLUDE(${QT_USE_FILE}) ## Check for required vtk-qt4 modules SET( vtk_required_modules vtkGUISupportQt vtkGUISupportQtOpenGL ) FOREACH(vtk_module ${vtk_required_modules}) IF(NOT ${vtk_module}_LOADED) MESSAGE( FATAL_ERROR "${vtk_module} module is required but not available." ) SET(QT4_FOUND "0") ENDIF(NOT ${vtk_module}_LOADED) ENDFOREACH(vtk_module) SET(QT4_FOUND "1") ENDIF(BUILD_FINAL_APPLICATION) OPTION(USE_cpPlugins "Build cpPlugins based stuff" OFF) IF(USE_cpPlugins) FIND_PACKAGE(cpPlugins REQUIRED) ENDIF(USE_cpPlugins) OPTION(USE_FrontAlgorithms "Build FrontAlgorithms based stuff" OFF) IF(USE_FrontAlgorithms) FIND_PACKAGE(FrontAlgorithms REQUIRED) ENDIF(USE_FrontAlgorithms) ## ================================================ ## = Do not allow to build inside the source tree = ## ================================================ 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}) ## ===================================== ## = 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( ${PROJECT_SOURCE_DIR}/lib ${PROJECT_SOURCE_DIR}/lib/third_party ${PROJECT_BINARY_DIR}/lib ) ## =========================== ## = Subdirs containing code = ## =========================== SUBDIRS( lib appli ) ## eof - $RCSfile$