X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=CMakeLists.txt;h=a6e1739d86cef860bd45667685f6a2a50cfd2c8c;hb=63536ed91ee1fbdd3fd7434e2a642f74bafb7425;hp=52524ead85df8917fe3175bcafd51817233240ea;hpb=e547c6bc6de6b7f929fa9ba06b0e4824a8c51d00;p=tools%2Fmedcoupling.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 52524ead8..a6e1739d8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,7 +18,7 @@ # #IF(WIN32) -# INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/FindXDR.cmake) +# INCLUDE(${PROJECT_SOURCE_DIR}/adm_local/cmake_files/FindXDR.cmake) #ENDIF(WIN32) CMAKE_MINIMUM_REQUIRED(VERSION 2.8.8 FATAL_ERROR) @@ -42,6 +42,31 @@ SET(VERSION ${${PROJECT_NAME_UC}_VERSION}) SET(XVERSION 0x0${${PROJECT_NAME_UC}_MAJOR_VERSION}0${${PROJECT_NAME_UC}_MINOR_VERSION}0${${PROJECT_NAME_UC}_PATCH_VERSION}) SET(VERSION_DEV "0") +# +# Kernel detection comes before user options to be +# able to take previous values of SALOME_USE_MPI, SALOME_BUILD_DOC, etc ... +# +SET(_default_MPI OFF) +IF(NOT SALOME_MED_STANDALONE) + SET(KERNEL_ROOT_DIR $ENV{KERNEL_ROOT_DIR} CACHE PATH "Path to the Salome KERNEL") + IF(EXISTS ${KERNEL_ROOT_DIR}) + LIST(APPEND CMAKE_MODULE_PATH "${KERNEL_ROOT_DIR}/salome_adm/cmake_files") + INCLUDE(SalomeMacros) + FIND_PACKAGE(SalomeKERNEL REQUIRED) + ADD_DEFINITIONS(${KERNEL_DEFINITIONS}) + INCLUDE_DIRECTORIES(${KERNEL_INCLUDE_DIRS}) + SET(_default_MPI ${SALOME_USE_MPI}) + ELSE(EXISTS ${KERNEL_ROOT_DIR}) + MESSAGE(FATAL_ERROR "We absolutely need a Salome KERNEL, please define KERNEL_ROOT_DIR or turn option SALOME_MED_STANDALONE to ON !") + ENDIF(EXISTS ${KERNEL_ROOT_DIR}) + LIST(APPEND CMAKE_MODULE_PATH "${KERNEL_ROOT_DIR}/salome_adm/cmake_files") + FIND_PACKAGE(SalomePThread REQUIRED) # for MEDCouplingCorba/Test for EDF + FIND_PACKAGE(SalomeOmniORB REQUIRED) +ELSE(NOT SALOME_MED_STANDALONE) + LIST(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/adm_local_without_kernel/cmake_files") + INCLUDE(SalomeMacros) +ENDIF(NOT SALOME_MED_STANDALONE) + # # User options # ============ @@ -50,14 +75,16 @@ OPTION(SALOME_MED_STANDALONE "Build MED without CORBA bindings. When OFF, exchan OPTION(SALOME_MED_MICROMED "Build MED without MED file dependancy." OFF) OPTION(SALOME_MED_ENABLE_PYTHON "Build PYTHON bindings." ON) OPTION(SALOME_MED_ENABLE_PARTITIONER "Build MEDPartitioner." ON) -OPTION(SALOME_USE_MPI "To build ParaMEDMEM." OFF) +OPTION(SALOME_MED_ENABLE_RENUMBER "Build Renumber." ON) +OPTION(SALOME_MED_WITH_FILE_EXAMPLES "Install examples of files containing meshes and fields of different formats." ON) +OPTION(SALOME_USE_MPI "(Use MPI containers) - For MED this triggers the build of ParaMEDMEM." ${_default_MPI}) OPTION(SALOME_BUILD_GUI "Build GUI of MED." ON) OPTION(SALOME_BUILD_TESTS "Build MED tests." ON) OPTION(SALOME_BUILD_DOC "Build MED doc." ON) -CMAKE_DEPENDENT_OPTION(SALOME_MED_PARTITIONER_METIS "Enable metis graph librarie in MEDPartitioner." ON "SALOME_MED_ENABLE_PARTITIONER;NOT SALOME_USE_MPI" OFF) -CMAKE_DEPENDENT_OPTION(SALOME_MED_PARTITIONER_SCOTCH "Enable scotch graph librarie in MEDPartitioner." ON "SALOME_MED_ENABLE_PARTITIONER;NOT SALOME_USE_MPI" OFF) -CMAKE_DEPENDENT_OPTION(SALOME_MED_PARTITIONER_PARMETIS "Enable parmetis graph librarie in MEDPartitioner." ON "SALOME_MED_ENABLE_PARTITIONER;SALOME_USE_MPI" OFF) -# +CMAKE_DEPENDENT_OPTION(SALOME_MED_PARTITIONER_METIS "Enable metis graph library in MEDPartitioner." ON "SALOME_MED_ENABLE_PARTITIONER;NOT SALOME_USE_MPI" OFF) +CMAKE_DEPENDENT_OPTION(SALOME_MED_PARTITIONER_SCOTCH "Enable scotch graph library in MEDPartitioner." ON "SALOME_MED_ENABLE_PARTITIONER;NOT SALOME_USE_MPI" OFF) +CMAKE_DEPENDENT_OPTION(SALOME_MED_PARTITIONER_PARMETIS "Enable parmetis graph library in MEDPartitioner." ON "SALOME_MED_ENABLE_PARTITIONER;SALOME_USE_MPI" OFF) + # # Set list of prerequisites # ========================= @@ -73,23 +100,30 @@ IF(NOT SALOME_MED_STANDALONE) ENDIF(EXISTS ${KERNEL_ROOT_DIR}) LIST(APPEND CMAKE_MODULE_PATH "${KERNEL_ROOT_DIR}/salome_adm/cmake_files") FIND_PACKAGE(SalomeOmniORB REQUIRED) + LIST(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/adm_local/cmake_files") ELSE(NOT SALOME_MED_STANDALONE) + LIST(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/adm_local/cmake_files") LIST(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/adm_local_without_kernel/cmake_files") INCLUDE(SalomeMacros) ENDIF(NOT SALOME_MED_STANDALONE) -LIST(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/adm_local/cmake_files") +# Platform setup +# ============== +INCLUDE(SalomeSetupPlatform) IF(NOT SALOME_MED_MICROMED) FIND_PACKAGE(SalomeHDF5 REQUIRED) FIND_PACKAGE(SalomeMEDFile REQUIRED) IF(SALOME_MED_ENABLE_PARTITIONER) - FIND_PACKAGE(SalomeLibXml2 REQUIRED) + FIND_PACKAGE(SalomeLibXml2) + SALOME_LOG_OPTIONAL_PACKAGE(LibXml2 SALOME_MED_ENABLE_PARTITIONER) IF(SALOME_MED_PARTITIONER_METIS) - FIND_PACKAGE(SalomeMetis REQUIRED) + FIND_PACKAGE(SalomeMetis) + SALOME_LOG_OPTIONAL_PACKAGE(Metis SALOME_MED_PARTITIONER_METIS) ENDIF(SALOME_MED_PARTITIONER_METIS) IF(SALOME_MED_PARTITIONER_SCOTCH) - FIND_PACKAGE(SalomeScotch REQUIRED) + FIND_PACKAGE(SalomeScotch) + SALOME_LOG_OPTIONAL_PACKAGE(Scotch SALOME_MED_PARTITIONER_SCOTCH) ENDIF(SALOME_MED_PARTITIONER_SCOTCH) ENDIF(SALOME_MED_ENABLE_PARTITIONER) ENDIF(NOT SALOME_MED_MICROMED) @@ -110,26 +144,48 @@ ENDIF(SALOME_BUILD_GUI) LIST(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/adm_local/cmake_files") +ENABLE_TESTING() # let it outsite because even if SALOME_BUILD_TESTS is OFF, python tests that not need additional compilation can be run. + IF(SALOME_BUILD_TESTS) - ENABLE_TESTING() - FIND_PACKAGE(SalomeCppUnit REQUIRED) + FIND_PACKAGE(SalomeCppUnit) + SALOME_LOG_OPTIONAL_PACKAGE(CppUnit SALOME_BUILD_TESTS) ENDIF(SALOME_BUILD_TESTS) IF(SALOME_USE_MPI) FIND_PACKAGE(SalomeMPI REQUIRED) + IF(SALOME_MED_PARTITIONER_PARMETIS) + FIND_PACKAGE(SalomeParMetis) + SALOME_LOG_OPTIONAL_PACKAGE(ParMetis SALOME_MED_PARTITIONER_PARMETIS) + ENDIF(SALOME_MED_PARTITIONER_PARMETIS) ENDIF(SALOME_USE_MPI) +IF(SALOME_MED_ENABLE_RENUMBER) + FIND_PACKAGE(SalomeBoost) + SALOME_LOG_OPTIONAL_PACKAGE(Boost SALOME_MED_ENABLE_RENUMBER) +ENDIF(SALOME_MED_ENABLE_RENUMBER) + IF(SALOME_BUILD_DOC) - FIND_PACKAGE(SalomeDoxygen REQUIRED) - FIND_PACKAGE(SalomeGraphviz) # Remains optional even here. - FIND_PACKAGE(SalomeSphinx REQUIRED) + FIND_PACKAGE(SalomeDoxygen) + FIND_PACKAGE(SalomeGraphviz) + FIND_PACKAGE(SalomeSphinx) + SALOME_LOG_OPTIONAL_PACKAGE(Doxygen SALOME_BUILD_DOC) + SALOME_LOG_OPTIONAL_PACKAGE(Graphviz SALOME_BUILD_DOC) + SALOME_LOG_OPTIONAL_PACKAGE(Sphinx SALOME_BUILD_DOC) ENDIF(SALOME_BUILD_DOC) IF(SALOME_MED_ENABLE_PYTHON) - FIND_PACKAGE(SalomePython REQUIRED) - FIND_PACKAGE(SalomeSWIG REQUIRED) + FIND_PACKAGE(SalomePython) + FIND_PACKAGE(SalomeSWIG) + SALOME_LOG_OPTIONAL_PACKAGE(Python SALOME_MED_ENABLE_PYTHON) + SALOME_LOG_OPTIONAL_PACKAGE(SWIG SALOME_MED_ENABLE_PYTHON) + IF(NOT SALOME_MED_STANDALONE) + FIND_PACKAGE(SalomeOmniORBPy REQUIRED) + ENDIF(NOT SALOME_MED_STANDALONE) ENDIF(SALOME_MED_ENABLE_PYTHON) +# Detection report +SALOME_PACKAGE_REPORT_AND_CHECK() + # Directories # # Directories have to be given after prerequisites (to be able to use @@ -149,7 +205,7 @@ SET(SALOME_INSTALL_APPLISKEL_SCRIPTS ${SALOME_INSTALL_BINS}/appliskel CACHE PATH "Install path: SALOME application skeleton - scripts") SET(SALOME_INSTALL_APPLISKEL_PYTHON ${SALOME_INSTALL_BINS}/appliskel CACHE PATH "Install path: SALOME application skeleton - Python") -SET(SALOME_INSTALL_CMAKE adm_local/cmake_files CACHE PATH "Install path: SALOME CMake files") +SET(SALOME_INSTALL_CMAKE salome_adm/cmake_files CACHE PATH "Install path: SALOME CMake files") SET(SALOME_INSTALL_CMAKE_LOCAL adm_local/cmake_files CACHE PATH "Install path: local SALOME CMake files") @@ -179,6 +235,8 @@ SET(output ${PROJECT_BINARY_DIR}/MED_version.h) MESSAGE(STATUS "Creation of ${output}") CONFIGURE_FILE(${input} ${output} @ONLY) INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/MED_version.h DESTINATION ${SALOME_INSTALL_HEADERS}) +CONFIGURE_FILE(VERSION.in VERSION @ONLY) +INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/VERSION DESTINATION ${SALOME_INSTALL_BINS}) # Sources # ======== @@ -187,8 +245,9 @@ IF(WIN32) ENDIF(WIN32) ADD_SUBDIRECTORY(src) -ADD_SUBDIRECTORY(bin) -ADD_SUBDIRECTORY(adm_local) +IF(NOT SALOME_MED_STANDALONE) + ADD_SUBDIRECTORY(adm_local) +ENDIF(NOT SALOME_MED_STANDALONE) IF(SALOME_BUILD_DOC) ADD_SUBDIRECTORY(doc) @@ -201,7 +260,9 @@ ELSE(NOT SALOME_MED_STANDALONE) ENDIF(NOT SALOME_MED_STANDALONE) IF(NOT SALOME_MED_MICROMED) - ADD_SUBDIRECTORY(resources) + IF(SALOME_MED_WITH_FILE_EXAMPLES) + ADD_SUBDIRECTORY(resources) + ENDIF(SALOME_MED_WITH_FILE_EXAMPLES) ENDIF(NOT SALOME_MED_MICROMED) # Configuration export @@ -240,8 +301,9 @@ EXPORT(TARGETS ${_${PROJECT_NAME}_exposed_targets} # Create the configuration files: # - in the build tree: -# Ensure the variables are always defined for the configure: - +# Ensure the variables are always defined for the configure (even if empty): +SET(KERNEL_ROOT_DIR "${KERNEL_ROOT_DIR}") +SET(GUI_ROOT_DIR "${GUI_ROOT_DIR}") SET(MEDFILE_ROOT_DIR "${MEDFILE_ROOT_DIR}") SET(HDF5_ROOT_DIR "${HDF5_ROOT_DIR}") SET(MPI_ROOT_DIR "${MPI_ROOT_DIR}") @@ -258,11 +320,12 @@ SET(SPHINX_ROOT_DIR "${SPHINX_ROOT_DIR}") # Get the relative path of the include directory so # we can register it in the generated configuration files: SET(CONF_INCLUDE_DIRS "${CMAKE_INSTALL_PREFIX}/${INSTALL_INCLUDE_DIR}") -CONFIGURE_PACKAGE_CONFIG_FILE(adm_local/cmake_files/${PROJECT_NAME}Config.cmake.in +CONFIGURE_PACKAGE_CONFIG_FILE(${PROJECT_NAME}Config.cmake.in ${PROJECT_BINARY_DIR}/to_install/${PROJECT_NAME}Config.cmake - INSTALL_DESTINATION "${SALOME_INSTALL_CMAKE}" - PATH_VARS CONF_INCLUDE_DIRS SALOME_INSTALL_CMAKE CMAKE_INSTALL_PREFIX - MEDFILE_ROOT_DIR HDF5_ROOT_DIR OMNIORB_ROOT_DIR PTHREAD_ROOT_DIR + INSTALL_DESTINATION "${SALOME_INSTALL_CMAKE}_LOCAL" + PATH_VARS CONF_INCLUDE_DIRS SALOME_INSTALL_CMAKE_LOCAL CMAKE_INSTALL_PREFIX + KERNEL_ROOT_DIR GUI_ROOT_DIR MEDFILE_ROOT_DIR + HDF5_ROOT_DIR OMNIORB_ROOT_DIR PTHREAD_ROOT_DIR SWIG_ROOT_DIR PYTHON_ROOT_DIR CPPUNIT_ROOT_DIR GRAPHVIZ_ROOT_DIR DOXYGEN_ROOT_DIR SPHINX_ROOT_DIR) @@ -274,8 +337,8 @@ WRITE_BASIC_PACKAGE_VERSION_FILE(${PROJECT_BINARY_DIR}/${PROJECT_NAME}ConfigVers INSTALL(FILES "${PROJECT_BINARY_DIR}/to_install/${PROJECT_NAME}Config.cmake" "${PROJECT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake" - DESTINATION "${SALOME_INSTALL_CMAKE}") + DESTINATION "${SALOME_INSTALL_CMAKE_LOCAL}") # Install the export set for use with the install-tree -INSTALL(EXPORT ${PROJECT_NAME}TargetGroup DESTINATION "${SALOME_INSTALL_CMAKE}" +INSTALL(EXPORT ${PROJECT_NAME}TargetGroup DESTINATION "${SALOME_INSTALL_CMAKE_LOCAL}" FILE ${PROJECT_NAME}Targets.cmake)