X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=inline;f=cmake%2FCREAMacro_FindAndUseLibraries.cmake;h=59fcb7a776bd963c0107c9b31d4773ca492b0dfb;hb=df78aa45453c52f619f1f5c7d1fa0f4245420a3f;hp=bca8c45aac729af259d61034ee2b7b62baee85cb;hpb=322f2106616b8229c5db7cb71285b8fe07cbb289;p=crea.git diff --git a/cmake/CREAMacro_FindAndUseLibraries.cmake b/cmake/CREAMacro_FindAndUseLibraries.cmake index bca8c45..59fcb7a 100644 --- a/cmake/CREAMacro_FindAndUseLibraries.cmake +++ b/cmake/CREAMacro_FindAndUseLibraries.cmake @@ -24,29 +24,28 @@ IF(USE_CREA) ENDIF(USE_CREA) #----------------------------------------------------------------------------- - #----------------------------------------------------------------------------- + IF(USE_QT4) IF(NOT QT_FOUND) - INCLUDE(${CREA_CMAKE_DIR}/CREAMacro_FindAndUseQt.cmake) #FIND_PACKAGE(Qt4 REQUIRED) - IF(QT_FOUND) MESSAGE ( STATUS "=======================================") MESSAGE ( STATUS "Looking for QT4... found") MESSAGE ( STATUS "* Inc Dir = ${QT_INCLUDE_DIR}") MESSAGE ( STATUS "* Version = ${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}.${QT_VERSION_PATCH}") INCLUDE(${QT_USE_FILE}) - CREA_DEFINE( USE_QT ) - # SET(QT_LIBRARIES - # ${QT_LIBRARIES} - # ) - # MARK_AS_ADVANCED(Qt4_DIR) ENDIF(QT_FOUND) ENDIF(NOT QT_FOUND) ENDIF(USE_QT4) + +#JFGA Pruebas WT +#MESSAGE ( "======================================= SET CMAKE USE_WT JFGA CREAMacro_FindAndUseLibraries.cmake") +#SET(USE_WT OFF) + + #----------------------------------------------------------------------------- #----------------------------------------------------------------------------- @@ -56,6 +55,55 @@ IF(USE_VTK) ENDIF(USE_VTK) #----------------------------------------------------------------------------- +#----------------------------------------------------------------------------- +IF(USE_OPENMP) + IF(APPLE) + set(CMAKE_THREAD_LIBS_INIT "-lpthread") + set(CMAKE_HAVE_THREADS_LIBRARY 1) + set(CMAKE_USE_WIN32_THREADS_INIT 0) + set(CMAKE_USE_PTHREADS_INIT 1) + set(THREADS_PREFER_PTHREAD_FLAG ON) + ENDIF() + find_package(Threads REQUIRED) + +### Find OpenMP +if(APPLE ) + if(CMAKE_C_COMPILER_ID MATCHES "Clang") + set(OpenMP_C "${CMAKE_C_COMPILER}") + set(OpenMP_C_FLAGS "-Xclang -fopenmp=libomp -Wno-unused-command-line-argument") + set(OpenMP_C_LIB_NAMES "libomp" "libgomp" "libiomp5") + set(OpenMP_libomp_LIBRARY ${OpenMP_C_LIB_NAMES}) + set(OpenMP_libgomp_LIBRARY ${OpenMP_C_LIB_NAMES}) + set(OpenMP_libiomp5_LIBRARY ${OpenMP_C_LIB_NAMES}) + endif() + if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") + set(OpenMP_CXX "${CMAKE_CXX_COMPILER}") +# set(OpenMP_CXX_FLAGS "-fopenmp=libomp -Wno-unused-command-line-argument") + set(OpenMP_CXX_FLAGS "-Xclang -fopenmp -Wno-unused-command-line-argument") + set(OpenMP_CXX_LIB_NAMES "libomp" "libgomp" "libiomp5") + set(OpenMP_libomp_LIBRARY ${OpenMP_CXX_LIB_NAMES}) +#EED 2022/05/15 + set(OpenMP_libomp_LIBRARY_crea libomp.dylib ) +# set(OpenMP_libiomp5_LIBRARY ${OpenMP_CXX_LIB_NAMES}) + endif() +endif() + find_package(OpenMP REQUIRED) +if (OPENMP_FOUND) +# include_directories("${OPENMP_INCLUDES}") + + link_directories( /opt/local/lib/libomp ) + set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") + set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") + # set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}") +endif(OPENMP_FOUND) + + +ENDIF(USE_OPENMP) + +#----------------------------------------------------------------------------- + + + #----------------------------------------------------------------------------- IF(USE_KWWIDGETS) IF(NOT KWWidgets_FOUND) @@ -85,9 +133,13 @@ IF(USE_KWWIDGETS) ENDIF(USE_KWWIDGETS) #----------------------------------------------------------------------------- - +# --- W A R N I N G : +# Always let ITK *BEFORE* GDCM +# It allows to use 'system installed gdcm' instead of 'itk embedded gdcm' +# #----------------------------------------------------------------------------- + IF(USE_ITK) IF(NOT ITK_FOUND) # Search ITK @@ -102,9 +154,13 @@ IF(USE_ITK) INCLUDE(${ITK_USE_FILE}) CREA_DEFINE( USE_ITK ) CREA_DEFINE( _USE_ITK_ ) - SET(ITK_LIBRARIES - ITKCommon ITKIO ITKBasicFilters ITKAlgorithms - ) + If (${ITK_VERSION_MAJOR} MATCHES "4" OR ${ITK_VERSION_MAJOR} MATCHES "5" ) + MESSAGE ( STATUS "* Version = ${ITK_VERSION_MAJOR}.${ITK_VERSION_MINOR}.${ITK_VERSION_PATCH}") + SET(ITK_LIBRARIES ${ITK_LIBRARIES}) + MESSAGE ( STATUS "${ITK_LIBRARIES}") + ELSEIF() + SET(ITK_LIBRARIES ITKCommon ITKIO ITKBasicFilters ITKAlgorithms) + ENDIF() MARK_AS_ADVANCED(ITK_DIR) ELSE(ITK_FOUND) message(FATAL_ERROR "ITK_DIR not found") @@ -115,6 +171,7 @@ ENDIF(USE_ITK) #----------------------------------------------------------------------------- + IF(USE_GDCM) IF (USE_GDCM2) MESSAGE(ERROR "CANNOT USE BOTH gdcm AND gdcm2 !") @@ -166,8 +223,15 @@ IF(USE_GDCM) ENDIF(USE_GDCM) #----------------------------------------------------------------------------- + IF(USE_GDCM2) + IF (USE_GDCM) + MESSAGE(ERROR "CANNOT USE BOTH gdcm AND gdcm2 !") + ENDIF (USE_GDCM) + +# IF(NOT USE_ITK) # JPR : ITK vs GDCM (avoid cmake break) # Search GDCM2 + FIND_PACKAGE(GDCM REQUIRED) INCLUDE(${GDCM_USE_FILE}) @@ -187,8 +251,9 @@ IF(USE_GDCM2) # Test that GDCM_NAME_SPACE is **NOT** "gdcm" or will conflict with # embedded gdcm in ITK and will result in hard seg faults ! - - + INCLUDE_DIRECTORIES(${GDCM_INCLUDE_DIRS}) + LINK_DIRECTORIES( ${GDCM_LIBRARY_DIRS}) + SET(GDCM2_LIBRARIES ${GDCM_LIBRARIES} ) @@ -197,35 +262,58 @@ IF(USE_GDCM2) IF(USE_VTK) IF(WIN32) SET(GDCM_LIBRARIES - ${GDCM_LIBRARIES} + ${GDCM_LIBRARIES} vtkgdcm - gdcm2vtk + gdcmIOD + gdcmMSFF + gdcmexpat + gdcmCommon + gdcmMEXD + gdcmexpat + gdcmDSED + gdcmDICT + gdcmjpeg8 + gdcmjpeg12 + gdcmjpeg16 + socketxx + gdcmopenjpeg + gdcmcharls ) ELSE(WIN32) SET(GDCM_LIBRARIES - ${GDCM_LIBRARIES} + ${GDCM_LIBRARIES} vtkgdcm + gdcmIOD ) ENDIF(WIN32) ENDIF(USE_VTK) ENDIF(USE_GDCM_VTK) - + # ENDIF(NOT USE_ITK) # JPR : ITK vs GDCM (avoid cmake break) ENDIF(USE_GDCM2) - - #----------------------------------------------------------------------------- #----------------------------------------------------------------------------- +#-------------------- JFGA --- +IF(USE_WT) + MESSAGE ( "======================================= JFGA ------------USE WT CREAMacro_FindAndUseLibraries.cmake") + INCLUDE(${CREA_CMAKE_DIR}/CREAMacro_FindAndUseWt.cmake) + CREA_FINDANDUSEWT() +ENDIF(USE_WT) + #----------------------------------------------------------------------------- IF(USE_WXWIDGETS) IF(NOT wxWidgets_FOUND) + INCLUDE(${CREA_CMAKE_DIR}/CREAMacro_FindAndUseWxWidgets.cmake) CREA_FIND_WXWIDGETS(${USE_DEBUG_LIB}) CREA_USE_WXWIDGETS() + + + ENDIF(NOT wxWidgets_FOUND) ENDIF(USE_WXWIDGETS) #----------------------------------------------------------------------------- @@ -278,24 +366,37 @@ ENDIF(USE_TTH) #----------------------------------------------------------------------------- #----------------------------------------------------------------------------- IF(USE_BOOST) -message(STATUS "1") IF(NOT Boost_FOUND) - FIND_PACKAGE(Boost COMPONENTS filesystem signals date_time regex REQUIRED) - IF(Boost_FOUND) - message(STATUS "1 bis") + add_definitions( -DBOOST_ALL_NO_LIB ) + add_definitions( -DBOOST_ALL_DYN_LINK ) + IF (MINGW) + IF(APPLE) + FIND_PACKAGE(Boost COMPONENTS filesystem-mgw71 system-mgw71 signals-mgw71 date_time-mgw71 thread-mgw71 regex-mgw71 program_options-mgw71 REQUIRED) + ELSE(APPLE) + set( Boost_INCLUDE_DIR $ENV{BOOST_ROOT}/include/boost-1_69) + FIND_PACKAGE(Boost COMPONENTS filesystem-mgw85-mt-x64-1_69 system-mgw85-mt-x64-1_69 date_time-mgw85-mt-x64-1_69 thread-mgw85-mt-x64-1_69 regex-mgw85-mt-x64-1_69 program_options-mgw85-mt-x64-1_69 REQUIRED) + ENDIF(APPLE) + ELSE (MINGW) +# FIND_PACKAGE(Boost COMPONENTS filesystem system signals date_time thread regex program_options REQUIRED) +#EED 2022-07-23 +# FIND_PACKAGE(Boost COMPONENTS filesystem system date_time thread regex program_options REQUIRED) + FIND_PACKAGE(Boost COMPONENTS filesystem system date_time regex program_options REQUIRED) + ENDIF(MINGW) + IF(Boost_FOUND) + ADD_DEFINITIONS(-DBOOST_FILESYSTEM_VERSION=3) + ADD_DEFINITIONS(-DBOOST_MAYOR_VERSION=${Boost_MAJOR_VERSION}) + ADD_DEFINITIONS(-DBOOST_MINOR_VERSION=${Boost_MINOR_VERSION}) MESSAGE ( STATUS "=======================================") MESSAGE ( STATUS "Looking for boost C++ library... - found in ${Boost_INCLUDE_DIR}") INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS}) - LINK_DIRECTORIES( ${Boost_LIBRARY_DIRS}) + LINK_DIRECTORIES( ${Boost_LIBRARY_DIRS}) IF(WIN32) - message("creamacro find and use lib = ${Boost_LIBRARIES}") - - CREA_DEFINE( USE_BOOST ) - + ADD_DEFINITIONS(-DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED) SET(BOOST_LIBRARIES ${Boost_LIBRARIES} ) + # FCY with cmake boost, it's useless. # But if it is not working, uncomment # @@ -315,15 +416,25 @@ message(STATUS "1") # ENDIF(USE_DEBUG_LIB) ENDIF(WIN32) IF(NOT WIN32) +message("EED 2021 CREAMacro_FindAndUseLibraries " ${Boost_LIBRARIES} ) SET(BOOST_LIBRARIES - boost_signals-mt - boost_filesystem-mt - boost_date_time-mt - boost_system-mt - boost_program_options-mt - boost_regex-mt - boost_thread-mt + + ${Boost_LIBRARIES} +#EED 10 Fev 2014 +#EED boost_system-mt +#EED boost_thread-mt +#EED boost_program_options-mt + +#EED 03 mars 2011 +#EED boost_signals-mt +#EED boost_filesystem-mt +#EED boost_date_time-mt +#EED boost_system-mt +#EED boost_program_options-mt +#EED boost_regex-mt +#EED boost_thread-mt + ) ENDIF(NOT WIN32) @@ -331,11 +442,9 @@ message(STATUS "1") MARK_AS_ADVANCED(Boost_LIBRARY_DIRS) ELSE(Boost_FOUND) - message(STATUS "2") - MESSAGE( "boost C++ library not found - Set Boost_INCLUDE_DIR to the directory containing boost headers") + MESSAGE( STATUS "boost C++ library not found - Set Boost_INCLUDE_DIR to the directory containing boost headers") ENDIF(Boost_FOUND) ENDIF(NOT Boost_FOUND) - message("${Boost_FOUND}") ENDIF(USE_BOOST) @@ -357,11 +466,21 @@ IF(USE_XERCES) ENDIF(NOT XERCES_LIB_DIR) - IF(USE_DEBUG_LIB) - set(XERCES_LIBRARIES xerces-c_3D) - ELSE(USE_DEBUG_LIB) - set(XERCES_LIBRARIES xerces-c_3) - ENDIF(USE_DEBUG_LIB) + IF(APPLE) + IF(USE_DEBUG_LIB) + set(XERCES_LIBRARIES xerces-c_3D) + ELSE(USE_DEBUG_LIB) + set(XERCES_LIBRARIES xerces-c_3) + ENDIF(USE_DEBUG_LIB) + ELSEIF(APPLE) + IF(USE_DEBUG_LIB) + #EED 2019-07-03 set(XERCES_LIBRARIES xerces-c_3D) + set(XERCES_LIBRARIES xerces-c) + ELSE(USE_DEBUG_LIB) + #EED 2019-07-03 set(XERCES_LIBRARIES xerces-c_3) + set(XERCES_LIBRARIES xerces-c) + ENDIF(USE_DEBUG_LIB) + ENDIF(APPLE) MARK_AS_ADVANCED(XERCES_LIB_DIR) ENDIF(WIN32) @@ -372,8 +491,9 @@ IF(USE_XERCES) SET(XERCES_LIBRARIES xerces-c ) INCLUDE_DIRECTORIES( /opt/local/include ) LINK_DIRECTORIES( /opt/local/lib ) - ELSEIF(APPLE) - SET(XERCES_LIBRARIES libxerces-c.so ) +#JCP 10/01/11 + ELSE(NOT APPLE) + SET(XERCES_LIBRARIES xerces-c ) INCLUDE_DIRECTORIES( /usr/local/include ) LINK_DIRECTORIES( /usr/local/lib /usr/lib) #FIND_PACKAGE(Xerces) @@ -386,5 +506,10 @@ IF(USE_XERCES) ENDIF(USE_XERCES) +IF(WIN32) + # dlfcn.h + INCLUDE_DIRECTORIES( $ENV{CREATIS_THIRDPARTYDLLS_DIRS}/../include ) +ENDIF(WIN32) + ENDMACRO(CREA_FIND_AND_USE_LIBRARIES)