diff options
-rw-r--r-- | .circleci/config.yml | 14 | ||||
-rw-r--r-- | .github/for_maintainers/tests_strategy.md | 5 | ||||
-rw-r--r-- | CMakeLists.txt | 12 | ||||
m--------- | ext/gudhi-deploy | 0 | ||||
-rw-r--r-- | src/CMakeLists.txt | 12 | ||||
-rw-r--r-- | src/Doxyfile.in | 4 | ||||
-rw-r--r-- | src/cmake/modules/GUDHI_options.cmake | 9 | ||||
-rw-r--r-- | src/cmake/modules/GUDHI_submodules.cmake | 5 | ||||
-rw-r--r-- | src/cmake/modules/GUDHI_third_party_libraries.cmake | 6 | ||||
-rw-r--r-- | src/common/doc/installation.h | 11 |
10 files changed, 54 insertions, 24 deletions
diff --git a/.circleci/config.yml b/.circleci/config.yml index 90737006..e2df5c87 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -58,7 +58,7 @@ jobs: git submodule update mkdir build cd build - cmake -DUSER_VERSION_DIR=version .. + cmake -DWITH_GUDHI_THIRD_PARTY=OFF -DUSER_VERSION_DIR=version .. make user_version cd version cmake -DCMAKE_BUILD_TYPE=Release -DWITH_GUDHI_EXAMPLE=OFF -DWITH_GUDHI_UTILITIES=OFF -DWITH_GUDHI_PYTHON=ON -DPython_ADDITIONAL_VERSIONS=3 -DWITH_GUDHI_REMOTE_TEST=ON . @@ -79,7 +79,7 @@ jobs: doxygen: docker: - - image: gudhi/ci_for_gudhi:latest + - image: gudhi/doxygen_for_gudhi:latest steps: - checkout - run: @@ -89,15 +89,15 @@ jobs: git submodule update mkdir build cd build - cmake -DCMAKE_BUILD_TYPE=Release -DWITH_GUDHI_EXAMPLE=OFF -DWITH_GUDHI_TEST=OFF -DWITH_GUDHI_UTILITIES=OFF -DWITH_GUDHI_PYTHON=OFF -DUSER_VERSION_DIR=version .. + cmake -DWITH_GUDHI_THIRD_PARTY=OFF -DUSER_VERSION_DIR=version .. make user_version cd version mkdir build cd build - cmake -DCMAKE_BUILD_TYPE=Release -DWITH_GUDHI_EXAMPLE=OFF -DWITH_GUDHI_TEST=OFF -DWITH_GUDHI_UTILITIES=OFF -DWITH_GUDHI_PYTHON=OFF .. - make doxygen 2>&1 | tee dox.log - grep warning dox.log - cp dox.log html/ + cmake -DWITH_GUDHI_THIRD_PARTY=OFF .. + make doxygen + grep warning doxygen.log + cp doxygen.log html/ cp -R html /tmp/doxygen - store_artifacts: diff --git a/.github/for_maintainers/tests_strategy.md b/.github/for_maintainers/tests_strategy.md index 338d4282..d0ae76ef 100644 --- a/.github/for_maintainers/tests_strategy.md +++ b/.github/for_maintainers/tests_strategy.md @@ -4,6 +4,11 @@ This document tries to sum up the tests strategy that has been put in place for The aim is to help maintainers to anticipate third parties modifications, updates. +## CMake options + +[CMake GUDHI options](../../src/cmake/modules/GUDHI_options.cmake) allows to activate/deactivate what should be built and tested. +Note the special option `WITH_GUDHI_THIRD_PARTY` that, when set to `OFF`, accelerates doxygen documentation generation or `user_version` for instance. + ## Builds ### Linux diff --git a/CMakeLists.txt b/CMakeLists.txt index ac877eea..6c233459 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,8 +13,12 @@ set(GUDHI_MISSING_MODULES "" CACHE INTERNAL "GUDHI_MISSING_MODULES") # This variable is used by Cython CMakeLists.txt and by GUDHI_third_party_libraries to know its path set(GUDHI_PYTHON_PATH "src/python") -# For third parties libraries management - To be done last as CGAL updates CMAKE_MODULE_PATH -include(GUDHI_third_party_libraries NO_POLICY_SCOPE) +include(GUDHI_submodules) + +if (WITH_GUDHI_THIRD_PARTY) + # For third parties libraries management - To be done last as CGAL updates CMAKE_MODULE_PATH + include(GUDHI_third_party_libraries NO_POLICY_SCOPE) +endif() include(GUDHI_compilation_flags) @@ -52,7 +56,9 @@ foreach(GUDHI_MODULE ${GUDHI_MODULES}) endforeach() endforeach() -add_subdirectory(src/GudhUI) +if (WITH_GUDHI_THIRD_PARTY) + add_subdirectory(src/GudhUI) +endif() if (WITH_GUDHI_PYTHON) # specific for cython module diff --git a/ext/gudhi-deploy b/ext/gudhi-deploy -Subproject 290ade1086bedbc96a35df886cadecabbf4072e +Subproject e9e9a4878731853d2d3149a5eac30df338a8197 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 8023e04c..f9f77ef7 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -12,8 +12,12 @@ set(GUDHI_MISSING_MODULES "" CACHE INTERNAL "GUDHI_MISSING_MODULES") # This variable is used by Cython CMakeLists.txt and by GUDHI_third_party_libraries to know its path set(GUDHI_PYTHON_PATH "python") -# For third parties libraries management - To be done last as CGAL updates CMAKE_MODULE_PATH -include(GUDHI_third_party_libraries NO_POLICY_SCOPE) +include(GUDHI_submodules) + +if (WITH_GUDHI_THIRD_PARTY) + # For third parties libraries management - To be done last as CGAL updates CMAKE_MODULE_PATH + include(GUDHI_third_party_libraries NO_POLICY_SCOPE) +endif() include(GUDHI_compilation_flags) @@ -67,7 +71,9 @@ foreach(GUDHI_MODULE ${GUDHI_MODULES}) endforeach() endforeach() -add_subdirectory(GudhUI) +if (WITH_GUDHI_THIRD_PARTY) + add_subdirectory(GudhUI) +endif() message("++ GUDHI_MODULES list is:\"${GUDHI_MODULES}\"") message("++ GUDHI_MISSING_MODULES list is:\"${GUDHI_MISSING_MODULES}\"") diff --git a/src/Doxyfile.in b/src/Doxyfile.in index d0fad45f..fb68ceb1 100644 --- a/src/Doxyfile.in +++ b/src/Doxyfile.in @@ -711,7 +711,7 @@ CITE_BIB_FILES = @CMAKE_SOURCE_DIR@/biblio/bibliography.bib \ # messages are off. # The default value is: NO. -QUIET = NO +QUIET = YES # The WARNINGS tag can be used to turn on/off the warning messages that are # generated to standard error (stderr) by doxygen. If WARNINGS is set to YES @@ -765,7 +765,7 @@ WARN_FORMAT = "$file:$line: $text" # messages should be written. If left blank the output is written to standard # error (stderr). -WARN_LOGFILE = +WARN_LOGFILE = doxygen.log #--------------------------------------------------------------------------- # Configuration options related to the input files diff --git a/src/cmake/modules/GUDHI_options.cmake b/src/cmake/modules/GUDHI_options.cmake index c75b72f5..5e28c87d 100644 --- a/src/cmake/modules/GUDHI_options.cmake +++ b/src/cmake/modules/GUDHI_options.cmake @@ -4,3 +4,12 @@ option(WITH_GUDHI_REMOTE_TEST "Activate/deactivate datasets fetching test which option(WITH_GUDHI_PYTHON "Activate/deactivate python module compilation and installation" ON) option(WITH_GUDHI_TEST "Activate/deactivate examples compilation and installation" ON) option(WITH_GUDHI_UTILITIES "Activate/deactivate utilities compilation and installation" ON) +option(WITH_GUDHI_THIRD_PARTY "Activate/deactivate third party libraries cmake detection. When set to OFF, it is usefull for doxygen or user_version i.e." ON) + +if (NOT WITH_GUDHI_THIRD_PARTY) + set (WITH_GUDHI_BENCHMARK OFF) + set (WITH_GUDHI_EXAMPLE OFF) + set (WITH_GUDHI_PYTHON OFF) + set (WITH_GUDHI_TEST OFF) + set (WITH_GUDHI_UTILITIES OFF) +endif()
\ No newline at end of file diff --git a/src/cmake/modules/GUDHI_submodules.cmake b/src/cmake/modules/GUDHI_submodules.cmake new file mode 100644 index 00000000..78b045bd --- /dev/null +++ b/src/cmake/modules/GUDHI_submodules.cmake @@ -0,0 +1,5 @@ +# For those who dislike bundled dependencies, this indicates where to find a preinstalled Hera. +set(HERA_WASSERSTEIN_INTERNAL_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/ext/hera/wasserstein/include) +set(HERA_WASSERSTEIN_INCLUDE_DIR ${HERA_WASSERSTEIN_INTERNAL_INCLUDE_DIR} CACHE PATH "Directory where one can find Hera's wasserstein.h") +set(HERA_BOTTLENECK_INTERNAL_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/ext/hera/bottleneck/include) +set(HERA_BOTTLENECK_INCLUDE_DIR ${HERA_BOTTLENECK_INTERNAL_INCLUDE_DIR} CACHE PATH "Directory where one can find Hera's bottleneck.h")
\ No newline at end of file diff --git a/src/cmake/modules/GUDHI_third_party_libraries.cmake b/src/cmake/modules/GUDHI_third_party_libraries.cmake index 6ba822ad..2cf6787e 100644 --- a/src/cmake/modules/GUDHI_third_party_libraries.cmake +++ b/src/cmake/modules/GUDHI_third_party_libraries.cmake @@ -48,12 +48,6 @@ if(CGAL_FOUND) include( ${CGAL_USE_FILE} ) endif() -# For those who dislike bundled dependencies, this indicates where to find a preinstalled Hera. -set(HERA_WASSERSTEIN_INTERNAL_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/ext/hera/wasserstein/include) -set(HERA_WASSERSTEIN_INCLUDE_DIR ${HERA_WASSERSTEIN_INTERNAL_INCLUDE_DIR} CACHE PATH "Directory where one can find Hera's wasserstein.h") -set(HERA_BOTTLENECK_INTERNAL_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/ext/hera/bottleneck/include) -set(HERA_BOTTLENECK_INCLUDE_DIR ${HERA_BOTTLENECK_INTERNAL_INCLUDE_DIR} CACHE PATH "Directory where one can find Hera's bottleneck.h") - option(WITH_GUDHI_USE_TBB "Build with Intel TBB parallelization" ON) # Find TBB package for parallel sort - not mandatory, just optional. diff --git a/src/common/doc/installation.h b/src/common/doc/installation.h index 229c9f59..28526498 100644 --- a/src/common/doc/installation.h +++ b/src/common/doc/installation.h @@ -43,12 +43,17 @@ make \endverbatim * Testing fetching datasets feature requires the use of the internet and is disabled by default. If you want to include this test, set WITH_GUDHI_REMOTE_TEST to ON when building in the previous step (note that this test is included in the python module): * \verbatim cmake -DCMAKE_BUILD_TYPE=Release -DWITH_GUDHI_TEST=ON -DWITH_GUDHI_REMOTE_TEST=ON --DWITH_GUDHI_PYTHON=ON .. \endverbatim * - * \subsection documentationgeneration Documentation - * To generate the documentation, <a target="_blank" href="http://www.doxygen.org/">Doxygen</a> is required. - * Run the following command in a terminal: + * \subsection documentationgeneration C++ documentation + * To generate the C++ documentation, the <a target="_blank" href="http://www.doxygen.org/">doxygen</a> program + * is required (version ≥ 1.9.3 is advised). Run the following command in a terminal: * \verbatim make doxygen \endverbatim * Documentation will be generated in a folder named <code>html</code>. * + * In case there is not a full setup present and only the documentation should be build the following command sequence + * can be used: +\verbatim cmake -DWITH_GUDHI_THIRD_PARTY=OFF .. +make doxygen\endverbatim + * * \subsection helloworld Hello world ! * The <a target="_blank" href="https://github.com/GUDHI/hello-gudhi-world">Hello world for GUDHI</a> * project is an example to help developers to make their own C++ project on top of the GUDHI library. |