From ae9f5fd3d1e7440d046084726b5bc6ba965d0129 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Wed, 29 Jan 2020 00:11:06 +0100 Subject: [PATCH 1/3] Modernize usage of Doxygen and LATEX CMake modules --- CMakeLists.txt | 34 +++++++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8a02d1ec8..824ac857c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1841,7 +1841,11 @@ if(NOT PUGIXML_FOUND) set(PUGIXML_CMAKE_FLAGS "") if(DEFINED ENV{OECORE_TARGET_SYSROOT}) set(PUGIXML_COMPILER "") - set(PUGIXML_CMAKE_FLAGS "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_CURRENT_SOURCE_DIR}/cmake/Toolchains/oe-sdk_cross.cmake") + if(NOT CMAKE_TOOLCHAIN_FILE) + set(PUGIXML_CMAKE_FLAGS "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_CURRENT_SOURCE_DIR}/cmake/Toolchains/oe-sdk_cross.cmake") + else() + set(PUGIXML_CMAKE_FLAGS "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}") + endif() else() if(CMAKE_TOOLCHAIN_FILE) set(PUGIXML_CMAKE_FLAGS "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}") @@ -2154,7 +2158,11 @@ endif() ################################################################################ # Doxygen - http://www.doxygen.nl (OPTIONAL, used if found) ################################################################################ -find_package(Doxygen) +if(CMAKE_VERSION VERSION_LESS 3.6.9) + find_package(Doxygen) +else() + find_package(Doxygen OPTIONAL_COMPONENTS dot) +endif() set_package_properties(Doxygen PROPERTIES URL "http://www.doxygen.nl" PURPOSE "Used to generate code documentation by doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME} doc'" @@ -2169,7 +2177,11 @@ else() DESCRIPTION "Generates documentation from annotated C++ sources" ) endif() -find_package(LATEX) +if(CMAKE_VERSION VERSION_LESS 3.2.3) + find_package(LATEX) +else() + find_package(LATEX COMPONENTS PDFLATEX) +endif() set_package_properties(LATEX PROPERTIES URL "https://www.latex-project.org" DESCRIPTION "High-quality typesetting system" @@ -2180,7 +2192,19 @@ if(DOXYGEN_FOUND) message(STATUS "Doxygen found.") message(STATUS " You can build the documentation with '${CMAKE_MAKE_PROGRAM_PRETTY_NAME} doc'.") message(STATUS " When done, point your browser to ${CMAKE_BINARY_DIR}/html/index.html") - set(HAVE_DOT ${DOXYGEN_DOT_FOUND}) + if(CMAKE_VERSION VERSION_LESS 3.9.6) + if(DOXYGEN_DOT_FOUND) + set(HAVE_DOT "YES") + endif() + if(NOT TARGET Doxygen::doxygen) + add_executable(Doxygen::doxygen IMPORTED GLOBAL) + set_target_properties(Doxygen::doxygen PROPERTIES + IMPORTED_LOCATION "${DOXYGEN_EXECUTABLE}" + ) + endif() + else() + set(HAVE_DOT ${DOXYGEN_HAVE_DOT}) + endif() file(TO_NATIVE_PATH ${CMAKE_SOURCE_DIR} top_srcdir) file(TO_NATIVE_PATH ${CMAKE_BINARY_DIR} top_builddir) set(PDFMANUAL_MAKE_PROGRAM ${CMAKE_MAKE_PROGRAM}) @@ -2210,7 +2234,7 @@ if(DOXYGEN_FOUND) @ONLY ) add_custom_target(doc - ${DOXYGEN_EXECUTABLE} ${CMAKE_BINARY_DIR}/docs/doxygen/Doxyfile + Doxygen::doxygen ${CMAKE_BINARY_DIR}/docs/doxygen/Doxyfile WORKING_DIRECTORY ${CMAKE_BINARY_DIR} COMMENT "Generating HTML documentation from source code with Doxygen..." VERBATIM ) From 04b595188f23ab96ced60c6615de1eeabe101f70 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Wed, 29 Jan 2020 00:29:09 +0100 Subject: [PATCH 2/3] Fix for old CMake versions --- CMakeLists.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 824ac857c..5b2bb7e68 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -246,7 +246,11 @@ if(NOT CMAKE_MAKE_PROGRAM_PRETTY_NAME) set(CMAKE_MAKE_PROGRAM_PRETTY_NAME "${CMAKE_MAKE_PROGRAM}") endif() - +if(CMAKE_VERSION VERSION_LESS 3.12) + if(POLICY CMP0057) # required by FindDoxygen.cmake module + cmake_policy(SET CMP0057 NEW) + endif() +endif() ################################################################################ # Minimum required versions From 89541ad09e5d3923222f6d095ec1e327b6e1fbd4 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Wed, 29 Jan 2020 00:56:19 +0100 Subject: [PATCH 3/3] Document CMake policy --- CMakeLists.txt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5b2bb7e68..719c2964f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -247,11 +247,13 @@ if(NOT CMAKE_MAKE_PROGRAM_PRETTY_NAME) endif() if(CMAKE_VERSION VERSION_LESS 3.12) - if(POLICY CMP0057) # required by FindDoxygen.cmake module - cmake_policy(SET CMP0057 NEW) + if(POLICY CMP0057) # required by FindDoxygen.cmake module + cmake_policy(SET CMP0057 NEW) # Support if() IN_LIST operator, added in CMake 3.3 endif() endif() + + ################################################################################ # Minimum required versions ################################################################################