From a7c18f65333c9fba32ba8cd6b80dc88808fa57b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Lenain?= Date: Tue, 19 Feb 2019 09:24:21 +0100 Subject: [PATCH 1/5] RLE : Correcting Cmake files for Windows and Visual Studio, and adding d suffix for the generated library in debug mode --- ChangeLog.md | 2 ++ cmake/Common.cmake | 13 +++++++++++-- cmake/DGtalConfig.cmake.in | 14 +++++++------- cmake/FindFFTW3.cmake | 8 ++++++-- cmake/TargetDoxygenDox.cmake | 2 +- examples/tutorial-examples/CMakeLists.txt | 4 ++++ 6 files changed, 31 insertions(+), 12 deletions(-) diff --git a/ChangeLog.md b/ChangeLog.md index f482ce1f4e..4316b30bf9 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -54,6 +54,8 @@ (Boris Mansencal, [#1380](https://github.com/DGtal-team/DGtal/pull/1380)) - Fixing & updating Travis: documentation deployement and DGtalTools job (Roland Denis, [#1383](https://github.com/DGtal-team/DGtal/pull/1383)) + - Fix compilation with Visual Studio and adding debug version for the generated file + (Raphael Lenain) - *Base* - Fixing wrong members in PredicateCombiner (David Coeurjolly, diff --git a/cmake/Common.cmake b/cmake/Common.cmake index d5392bf1da..10b970aad9 100644 --- a/cmake/Common.cmake +++ b/cmake/Common.cmake @@ -28,6 +28,11 @@ foreach(p LIB BIN INCLUDE DATA) endif() endforeach() +# ----------------------------------------------------------------------------- +# To distinguish between debug and release lib +# ----------------------------------------------------------------------------- +set(CMAKE_DEBUG_POSTFIX "d") + # ----------------------------------------------------------------------------- # Doxygen targets # ----------------------------------------------------------------------------- @@ -36,7 +41,7 @@ message(STATUS "Checking if doxygen/dot is installed:") message(STATUS " ") set(INSTALL_DOC_PATH ${CMAKE_INSTALL_PREFIX}/share/DGtal CACHE PATH "Installation directory for DGtal documentation files.") INCLUDE(doxygen) -INCLUDE(TargetDoxygenDoc OPTIONAL) +#INCLUDE(TargetDoxygenDoc OPTIONAL) INCLUDE(TargetDoxygenDox OPTIONAL) # ----------------------------------------------------------------------------- @@ -52,7 +57,11 @@ ADD_CUSTOM_TARGET(uninstall # ----------------------------------------------------------------------------- # Parsing cmake options # ----------------------------------------------------------------------------- -OPTION(BUILD_SHARED_LIBS "Build shared libraries." ON) +IF (MSVC) + OPTION(BUILD_SHARED_LIBS "Build shared libraries." OFF) +ELSE (MSVC) + OPTION(BUILD_SHARED_LIBS "Build shared libraries." ON) +ENDIF (MSVC) OPTION(BUILD_TESTING "Build testing." OFF) OPTION(DEBUG_VERBOSE "Verbose debug messages." OFF) OPTION(VERBOSE "Verbose messages." OFF) diff --git a/cmake/DGtalConfig.cmake.in b/cmake/DGtalConfig.cmake.in index ee28392980..16dc422e57 100644 --- a/cmake/DGtalConfig.cmake.in +++ b/cmake/DGtalConfig.cmake.in @@ -75,7 +75,7 @@ ENDIF(@COLOR_WITH_ALPHA_ARITH_DGTAL@) # When user or compiler have not set any std flag. try_compile( CPP11_COMPATIBLE_FLAG_SET_BY_USER ${CMAKE_BINARY_DIR}/CMakeTmp - @DGTAL_CMAKE_DIR@/cpp11_check.cpp + "@DGTAL_CMAKE_DIR@/cpp11_check.cpp" CMAKE_FLAGS "-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}" OUTPUT_VARIABLE OUTPUT ) @@ -120,7 +120,7 @@ ENDIF(@HDF5_FOUND_DGTAL@) if (@QGLVIEWER_FOUND_DGTAL@) add_definitions("-DWITH_VISU3D_QGLVIEWER ") set(WITH_VISU3D_QGLVIEWER 1) - set(DGTAL_INCLUDE_DIRS ${DGTAL_INCLUDE_DIRS} @QGLVIEWER_INCLUDE_DIR@) + set(DGTAL_INCLUDE_DIRS ${DGTAL_INCLUDE_DIRS} "@QGLVIEWER_INCLUDE_DIR@") endif (@QGLVIEWER_FOUND_DGTAL@) #-- We force the Qt rediscovering @@ -130,7 +130,7 @@ if (@QT4_FOUND_DGTAL@) add_definitions("-DWITH_QT4") set(WITH_QT4 1) include(${QT_USE_FILE}) - set(DGTAL_INCLUDE_DIRS ${DGTAL_INCLUDE_DIRS} ${QT_INCLUDE_DIR}) + set(DGTAL_INCLUDE_DIRS ${DGTAL_INCLUDE_DIRS} "${QT_INCLUDE_DIR}") endif (@QT4_FOUND_DGTAL@) if (@QT5_FOUND_DGTAL@) @@ -139,9 +139,9 @@ if (@QT5_FOUND_DGTAL@) set(WITH_QT5 1) set(Qt5_DIR @Qt5_DIR@) set(DGTAL_INCLUDE_DIRS ${DGTAL_INCLUDE_DIRS} - ${Qt5Widgets_INCLUDE_DIRS} - ${Qt5OpenGL_INCLUDE_DIRS} - ${Qt5Xml_INCLUDE_DIRS}) + "${Qt5Widgets_INCLUDE_DIRS}" + "${Qt5OpenGL_INCLUDE_DIRS}" + "${Qt5Xml_INCLUDE_DIRS}") endif (@QT5_FOUND_DGTAL@) IF(@OPENMP_FOUND_DGTAL@) @@ -156,7 +156,7 @@ ENDIF(@OPENMP_FOUND_DGTAL@) IF(@EIGEN_FOUND_DGTAL@) ADD_DEFINITIONS("-DWITH_EIGEN ") SET(WITH_EIGEN 1) - SET(DGTAL_INCLUDE_DIRS ${DGTAL_INCLUDE_DIRS} @EIGEN3_INCLUDE_DIR@ ) + SET(DGTAL_INCLUDE_DIRS ${DGTAL_INCLUDE_DIRS} "@EIGEN3_INCLUDE_DIR@" ) ENDIF(@EIGEN_FOUND_DGTAL@) diff --git a/cmake/FindFFTW3.cmake b/cmake/FindFFTW3.cmake index 4177293ea1..4cbb184a4f 100644 --- a/cmake/FindFFTW3.cmake +++ b/cmake/FindFFTW3.cmake @@ -24,7 +24,9 @@ find_library (FFTW3_LONG_THREADS_LIBRARIES NAMES fftw3l_threads ) # Gathering FFTW3 libraries set (FFTW3_LIBRARIES ${FFTW3_FLOAT_LIBRARIES} ${FFTW3_DOUBLE_LIBRARIES} ${FFTW3_LONG_LIBRARIES}) set (FFTW3_THREADS_LIBRARIES ${FFTW3_FLOAT_THREADS_LIBRARIES} ${FFTW3_DOUBLE_THREADS_LIBRARIES} ${FFTW3_LONG_THREADS_LIBRARIES}) -set (FFTW3_DEP_LIBRARIES m) +if (NOT MSVC) + set (FFTW3_DEP_LIBRARIES m) +endif (NOT MSVC) # Telling which FFT precisions are found. include(FindPackageHandleStandardArgs) @@ -36,7 +38,9 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(FFTW3_LONG DEFAULT_MSG FFTW3_INCLUDE_DIR FFT # Adding threaded version of FFTW3 if (FFTW3_THREADS_LIBRARIES) set (FFTW3_LIBRARIES ${FFTW3_LIBRARIES} ${FFTW3_THREADS_LIBRARIES}) - set (FFTW3_DEP_LIBRARIES ${FFTW3_DEP_LIBRARIES} pthread) + if (NOT MSVC) + set (FFTW3_DEP_LIBRARIES ${FFTW3_DEP_LIBRARIES} pthread) + endif (NOT MSVC) endif (FFTW3_THREADS_LIBRARIES) diff --git a/cmake/TargetDoxygenDox.cmake b/cmake/TargetDoxygenDox.cmake index 609c0b0d06..d844d66765 100644 --- a/cmake/TargetDoxygenDox.cmake +++ b/cmake/TargetDoxygenDox.cmake @@ -66,7 +66,7 @@ IF (DOXYGEN_FOUND) STRING(REGEX REPLACE "[/]" "\\\\" HHP_FILE ${TMP} ) # MESSAGE(SEND_ERROR "DBG HHP_FILE=${HHP_FILE}") ADD_CUSTOM_TARGET(winhelp ${HTML_HELP_COMPILER} ${HHP_FILE}) - ADD_DEPENDENCIES (winhelp doc) + ADD_DEPENDENCIES (winhelp dox) IF (NOT TARGET_DOC_SKIP_INSTALL) # install windows help? diff --git a/examples/tutorial-examples/CMakeLists.txt b/examples/tutorial-examples/CMakeLists.txt index 7a8ade9585..7287981295 100644 --- a/examples/tutorial-examples/CMakeLists.txt +++ b/examples/tutorial-examples/CMakeLists.txt @@ -13,6 +13,10 @@ SET(DGTAL_TUTO_EXAMPLES_SRC FOREACH(FILE ${DGTAL_TUTO_EXAMPLES_SRC}) + if(MSVC) + set_source_files_properties( ${FILE} PROPERTIES COMPILE_FLAGS "/bigobj" ) + endif(MSVC) + add_executable(${FILE} ${FILE}) target_link_libraries (${FILE} DGtal ) ENDFOREACH(FILE) From 4bb5a55427907f8fd3df376f7d2ed2035d61275d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Lenain?= Date: Tue, 19 Feb 2019 11:03:50 +0100 Subject: [PATCH 2/5] RLE : Common.cmake : fixing DoxygenDox for MSVC and DoxygenDoc for other compilers --- cmake/Common.cmake | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/cmake/Common.cmake b/cmake/Common.cmake index 10b970aad9..753047b2b4 100644 --- a/cmake/Common.cmake +++ b/cmake/Common.cmake @@ -41,8 +41,12 @@ message(STATUS "Checking if doxygen/dot is installed:") message(STATUS " ") set(INSTALL_DOC_PATH ${CMAKE_INSTALL_PREFIX}/share/DGtal CACHE PATH "Installation directory for DGtal documentation files.") INCLUDE(doxygen) -#INCLUDE(TargetDoxygenDoc OPTIONAL) -INCLUDE(TargetDoxygenDox OPTIONAL) +if (MSVC) + INCLUDE(TargetDoxygenDox OPTIONAL) +else (MSVC) + INCLUDE(TargetDoxygenDoc OPTIONAL) +endif (MSVC) + # ----------------------------------------------------------------------------- # uninstall target From 0ce097eede0a6db0e12513377585ae776830d460 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Lenain?= Date: Wed, 20 Feb 2019 14:22:18 +0100 Subject: [PATCH 3/5] RLE : correcting the doc and dox fix, after code review --- cmake/Common.cmake | 8 ++------ cmake/TargetDoxygenDox.cmake | 4 ++-- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/cmake/Common.cmake b/cmake/Common.cmake index 753047b2b4..cd81ddb68e 100644 --- a/cmake/Common.cmake +++ b/cmake/Common.cmake @@ -41,12 +41,8 @@ message(STATUS "Checking if doxygen/dot is installed:") message(STATUS " ") set(INSTALL_DOC_PATH ${CMAKE_INSTALL_PREFIX}/share/DGtal CACHE PATH "Installation directory for DGtal documentation files.") INCLUDE(doxygen) -if (MSVC) - INCLUDE(TargetDoxygenDox OPTIONAL) -else (MSVC) - INCLUDE(TargetDoxygenDoc OPTIONAL) -endif (MSVC) - +INCLUDE(TargetDoxygenDoc OPTIONAL) +INCLUDE(TargetDoxygenDox OPTIONAL) # ----------------------------------------------------------------------------- # uninstall target diff --git a/cmake/TargetDoxygenDox.cmake b/cmake/TargetDoxygenDox.cmake index d844d66765..8c85e95eef 100644 --- a/cmake/TargetDoxygenDox.cmake +++ b/cmake/TargetDoxygenDox.cmake @@ -65,8 +65,8 @@ IF (DOXYGEN_FOUND) SET (TMP "${CMAKE_CURRENT_BINARY_DIR}\\Doc\\html\\index.hhp") STRING(REGEX REPLACE "[/]" "\\\\" HHP_FILE ${TMP} ) # MESSAGE(SEND_ERROR "DBG HHP_FILE=${HHP_FILE}") - ADD_CUSTOM_TARGET(winhelp ${HTML_HELP_COMPILER} ${HHP_FILE}) - ADD_DEPENDENCIES (winhelp dox) + ADD_CUSTOM_TARGET(winhelp-dox ${HTML_HELP_COMPILER} ${HHP_FILE}) + ADD_DEPENDENCIES (winhelp-dox dox) IF (NOT TARGET_DOC_SKIP_INSTALL) # install windows help? From 07a925195e88e3de22feb2d98a09ada0b15ba031 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Lenain?= Date: Wed, 27 Feb 2019 15:40:20 +0100 Subject: [PATCH 4/5] RLE : adding Visual Studio check for d suffix of the library --- cmake/Common.cmake | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cmake/Common.cmake b/cmake/Common.cmake index cd81ddb68e..bf25e6be4d 100644 --- a/cmake/Common.cmake +++ b/cmake/Common.cmake @@ -29,9 +29,11 @@ foreach(p LIB BIN INCLUDE DATA) endforeach() # ----------------------------------------------------------------------------- -# To distinguish between debug and release lib +# Visual Studio : to distinguish between debug and release lib # ----------------------------------------------------------------------------- -set(CMAKE_DEBUG_POSTFIX "d") +IF (MSVC) + set(CMAKE_DEBUG_POSTFIX "d") +ENDIF (MSVC) # ----------------------------------------------------------------------------- # Doxygen targets From 29dc1fc4c06a6fe1ab55d592cc0ee8689cf5306c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Lenain?= Date: Wed, 27 Feb 2019 16:32:55 +0100 Subject: [PATCH 5/5] RLE : Updating AUTHORS file --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 47cdd1cca4..8be2cc6140 100644 --- a/AUTHORS +++ b/AUTHORS @@ -25,3 +25,4 @@ Mohamed Mellouli Jean-David GĂ©nevaux Thomas Caissard Boris Mansencal +Raphael Lenain