PROJECT(vtkINRIA3D) # On Visual Studio 8 MS deprecated C. This removes all 1.276E1265 security # warnings. Copied from ITK CMakeLists. IF(WIN32) IF(NOT BORLAND) IF(NOT CYGWIN) IF(NOT MINGW) ADD_DEFINITIONS( -D_CRT_FAR_MAPPINGS_NO_DEPRECATE -D_CRT_IS_WCTYPE_NO_DEPRECATE -D_CRT_MANAGED_FP_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_DEPRECATE_GLOBALS -D_CRT_SETERRORMODE_BEEP_SLEEP_NO_DEPRECATE -D_CRT_TIME_FUNCTIONS_NO_DEPRECATE -D_CRT_VCCLRIT_NO_DEPRECATE -D_SCL_SECURE_NO_DEPRECATE ) ENDIF(NOT MINGW) ENDIF(NOT CYGWIN) ENDIF(NOT BORLAND) ENDIF(WIN32) # # Define EXECUTABLE_OUTPUT_PATH and LIBRARY_OUTPUT_PATH # SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin CACHE PATH "Single output directory for building all executables." ) SET(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib CACHE PATH "Single output directory for building all libraries." ) # Set the path to our FindXXX.cmake files SET(CMAKE_MODULE_PATH ${vtkINRIA3D_SOURCE_DIR}/CMakeModules) INCLUDE(${CMAKE_ROOT}/Modules/Dart.cmake) ENABLE_TESTING() SET(vtkINRIA3D_VERSION_MAJOR 1) SET(vtkINRIA3D_VERSION_MINOR 0) SET(vtkINRIA3D_VERSION_BUILD 0) SET(vtkINRIA3D_VERSION "${vtkINRIA3D_VERSION_MAJOR}.${vtkINRIA3D_VERSION_MINOR}.${vtkINRIA3D_VERSION_BUILD}") #---------------------------- # We need vtk, no matter what #---------------------------- FIND_PACKAGE(VTK REQUIRED) INCLUDE(${VTK_USE_FILE}) ADD_DEFINITIONS("-DVTK_MAJOR_VERSION=${VTK_MAJOR_VERSION}") ADD_DEFINITIONS("-DVTK_MINOR_VERSION=${VTK_MINOR_VERSION}") # VTK 5.0 really need some help. The evil VTK_WRAP_TCL3_INIT_DIR hack was # fixed on the 5.0 branch but people have downloaded earlier 5.0 as well. # Furthermore, old 5.0 can not be used once it has been installed, since # vtkWrapperInit.data.in is not installed properly: report that sad fact. INCLUDE("${VTK_CMAKE_DIR}/vtkWrapTcl.cmake") IF("${VTK_MAJOR_VERSION}.${VTK_MINOR_VERSION}" EQUAL "5.0") IF(VTK_INSTALL_PREFIX) IF(NOT EXISTS "${VTK_CMAKE_DIR}/vtkWrapperInit.data.in") MESSAGE("Sorry, you are using a VTK 5.0 that can not be used properly once it has been installed. You can either download a more recent VTK 5.0 snapshot from the CVS repository, or simply point your project to your VTK build directory instead of your VTK install directory.") ENDIF(NOT EXISTS "${VTK_CMAKE_DIR}/vtkWrapperInit.data.in") ELSE(VTK_INSTALL_PREFIX) SET(VTK_WRAP_TCL3_INIT_DIR "${VTK_SOURCE_DIR}/Wrapping") SET(VTK_WRAP_PYTHON3_INIT_DIR "${VTK_SOURCE_DIR}/Wrapping") ENDIF(VTK_INSTALL_PREFIX) ENDIF("${VTK_MAJOR_VERSION}.${VTK_MINOR_VERSION}" EQUAL "5.0") #-------------- # SHARED LIBRARY #-------------- # We must remain consistent with the VTK build settings, except for win32 IF(WIN32) SET(BUILD_SHARED_LIBS OFF) ELSE(WIN32) SET(BUILD_SHARED_LIBS ${VTK_BUILD_SHARED_LIBS}) ENDIF(WIN32) #-------------- # ITK #-------------- OPTION(USE_ITK "If ON, Compile ITK extensions, like wxDICOMImporter" OFF) IF(USE_ITK) FIND_PACKAGE(ITK) IF(ITK_FOUND) INCLUDE(${ITK_USE_FILE}) ELSE(ITK_FOUND) MESSAGE(FATAL_ERROR "ITK not found. Please set ITK_DIR.") ENDIF(ITK_FOUND) ELSE(USE_ITK) SET(ITK_FOUND OFF) ENDIF(USE_ITK) #---------- # wxWidgets #---------- OPTION(USE_WXWINDOWS "If ON, Build the wxVtk extension and the wxSamples (requires ITK too)" OFF) IF(USE_WXWINDOWS) IF(WIN32) SET(wxWidgets_USE_LIBS base core adv aui xrc xml html) ELSE(WIN32) SET(wxWidgets_USE_LIBS base core gl adv aui xrc xml html) ENDIF(WIN32) FIND_PACKAGE(wxWidgets2) # use the version provided by vtkINRIA3D -> to find the aui # library (advanced user interface) IF(wxWidgets_FOUND) IF(APPLE) # if APPLE and universal binaries, the bindings wx-config --libs # returns extra info that cmake cannot handle. I manually extract # the meaningful information. SET(wxFrameworks ) SET(wxLibs ) STRING(REGEX MATCHALL "-framework [^ ;]+" wxFrameworks "${wxWidgets_LIBRARIES}") STRING(REGEX MATCHALL "-l[^ ;]+" wxLibs "${wxWidgets_LIBRARIES}") SET(wxWidgets_LIBRARIES ${wxFrameworks} ${wxLibs} ) ENDIF(APPLE) INCLUDE(${wxWidgets_USE_FILE}) IF(UNIX AND NOT APPLE) # our UNIX version depends on GTK-2, so find GTK-2 as well FIND_PACKAGE(GTK-2 REQUIRED) LINK_DIRECTORIES( ${GTK_LINK_DIRS} ) ENDIF(UNIX AND NOT APPLE) ELSE(wxWidgets_FOUND) MESSAGE(ERROR " wxWidgets was not found. On WIN32, check that you specified the correct paths. On UNIX, make sure that the correct wx-config executable was set and that wxWidgets was compiled with the OpenGL extension!") ENDIF(wxWidgets_FOUND) ENDIF(USE_WXWINDOWS) #----------- # KWWidgets- #----------- OPTION(USE_KWWidgets "If ON, Build the vtkKW extension and KwVizz" OFF) IF(USE_KWWidgets) FIND_PACKAGE(KWWidgets) IF(KWWidgets_FOUND) INCLUDE(${KWWidgets_USE_FILE}) ELSE(KWWidgets_FOUND) MESSAGE(FATAL_ERROR "KWWidgets not found. Please set KWWidgets_DIR.") ENDIF(KWWidgets_FOUND) ENDIF(USE_KWWidgets) # Save the compiler settings so another project can import them. SET(vtkINRIA3D_BUILD_SETTINGS_FILE ${vtkINRIA3D_BINARY_DIR}/vtkINRIA3DBuildSettings.cmake) INCLUDE(${CMAKE_ROOT}/Modules/CMakeExportBuildSettings.cmake) CMAKE_EXPORT_BUILD_SETTINGS(${vtkINRIA3D_BUILD_SETTINGS_FILE}) INSTALL_FILES(/lib .cmake vtkINRIA3DBuildSettings) # Create the list of include directories needed for vtkINRIA3D header files. INCLUDE(${vtkINRIA3D_SOURCE_DIR}/vtkINRIA3DIncludeDirectories.cmake) INCLUDE_DIRECTORIES( ${vtkINRIA3D_INCLUDE_DIRS_BUILD_TREE} ${vtkINRIA3D_INCLUDE_DIRS_SOURCE_TREE} ) # To help using vtkINRIA3D with other projects CONFIGURE_FILE(${vtkINRIA3D_SOURCE_DIR}/UsevtkINRIA3D.cmake.in ${vtkINRIA3D_BINARY_DIR}/UsevtkINRIA3D.cmake COPYONLY IMMEDIATE) CONFIGURE_FILE ( ${PROJECT_SOURCE_DIR}/doxygen.config.in ${PROJECT_BINARY_DIR}/doxygen.config IMMEDIATE @ONLY ) FIND_PACKAGE(Doxygen) IF (DOXYGEN) ADD_CUSTOM_TARGET(doc ${DOXYGEN} ${PROJECT_BINARY_DIR}/doxygen.config ) ENDIF(DOXYGEN) # Create the vtkINRIA3DConfig.cmake file containing the vtkINRIA3D configuration. INCLUDE (${vtkINRIA3D_SOURCE_DIR}/vtkGenerateINRIA3DConfig.cmake) INSTALL_FILES(/lib .cmake UsevtkINRIA3D) OPTION(BUILD_EXAMPLES "Build the Examples directory." ON) SUBDIRS( wxAddOn vtkRenderingAddOn wxVtk vtkVisuManagement vtkDataManagement wxSamples KWAddOn ) IF(BUILD_EXAMPLES) SUBDIRS(Examples) ENDIF(BUILD_EXAMPLES) #IF(BUILD_TESTING) # Tests are not working right now # SUBDIRS(Testing) #ENDIF(BUILD_TESTING) SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "vtkINRIA3D") SET(CPACK_PACKAGE_VENDOR "INRIA Sophia Antipolis, Asclepios Research Team.") SET(CPACK_PACKAGE_VERSION_MAJOR "${vtkINRIA3D_VERSION_MAJOR}") SET(CPACK_PACKAGE_VERSION_MINOR "${vtkINRIA3D_VERSION_MINOR}") SET(CPACK_PACKAGE_VERSION_PATCH "${vtkINRIA3D_VERSION_BUILD}") SET(CPACK_PACKAGE_INSTALL_DIRECTORY "vtkINRIA3D ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}") SET(CPACK_SOURCE_PACKAGE_FILE_NAME "vtkINRIA3D-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}") IF(WIN32) SET(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY}") SET(CPACK_NSIS_HELP_LINK "https://gforge.inria.fr/projects/vtkinria3d/") SET(CPACK_NSIS_URL_INFO_ABOUT "http://www-sop.inria.fr/asclepios/") SET(CPACK_NSIS_CONTACT "vtkinria3d-users@lists.gforge.inria.fr") ENDIF(WIN32) INCLUDE(CPack)