From 4a98f0502c948ea6b4790dc3418f3735de17c726 Mon Sep 17 00:00:00 2001 From: Gabriel Ferreira Date: Sun, 3 Apr 2022 23:56:07 -0300 Subject: [PATCH] build: fix post find_program checks --- CMakeLists.txt | 4 +-- .../custom-modules/ns3-coverage.cmake | 12 ++++----- .../custom-modules/ns3-versioning.cmake | 2 +- build-support/macros-and-definitions.cmake | 26 ++++++++++++------- 4 files changed, 25 insertions(+), 19 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 27c463b9a..8cd5b8e75 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,8 +5,8 @@ cmake_minimum_required(VERSION 3.10..3.10) # Use ccache if available mark_as_advanced(CCACHE_FOUND) -find_program(CCACHE_FOUND ccache) -if(CCACHE_FOUND) +find_program(CCACHE ccache) +if(NOT ("${CCACHE}" STREQUAL "CCACHE-NOTFOUND")) set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache) message( STATUS "CCache is enabled. Precompiled headers are disabled by default." diff --git a/build-support/custom-modules/ns3-coverage.cmake b/build-support/custom-modules/ns3-coverage.cmake index 69e6d9d54..4372bc393 100644 --- a/build-support/custom-modules/ns3-coverage.cmake +++ b/build-support/custom-modules/ns3-coverage.cmake @@ -16,16 +16,16 @@ # Author: Gabriel Ferreira if(${NS3_COVERAGE}) - mark_as_advanced(GCOVp) - find_program(GCOVp gcov) - if(GCOVp) + mark_as_advanced(GCOV) + find_program(GCOV gcov) + if(NOT ("${GCOV}" STREQUAL "GCOV-NOTFOUND")) add_definitions(--coverage) link_libraries(-lgcov) endif() - mark_as_advanced(LCOVp) - find_program(LCOVp lcov) - if(NOT LCOVp) + mark_as_advanced(LCOV) + find_program(LCOV lcov) + if("${LCOV}" STREQUAL "LCOV-NOTFOUND") message(FATAL_ERROR "LCOV is required but it is not installed.") endif() diff --git a/build-support/custom-modules/ns3-versioning.cmake b/build-support/custom-modules/ns3-versioning.cmake index 482d3f314..90cbc2585 100644 --- a/build-support/custom-modules/ns3-versioning.cmake +++ b/build-support/custom-modules/ns3-versioning.cmake @@ -81,7 +81,7 @@ function(configure_embedded_version) mark_as_advanced(GIT) find_program(GIT git) - if(NOT GIT) + if("${GIT}" STREQUAL "GIT-NOTFOUND") message( STATUS "Git was not found. Version related targets won't be enabled" ) diff --git a/build-support/macros-and-definitions.cmake b/build-support/macros-and-definitions.cmake index 58a83f931..a96dd5f80 100644 --- a/build-support/macros-and-definitions.cmake +++ b/build-support/macros-and-definitions.cmake @@ -282,7 +282,7 @@ function(check_deps package_deps program_deps missing_deps) string(TOUPPER ${program} upper_${program}) mark_as_advanced(${upper_${program}}) find_program(${upper_${program}} ${program}) - if(NOT ${upper_${program}}) + if("${${upper_${program}}}" STREQUAL "${upper_${program}}-NOTFOUND") list(APPEND local_missing_deps ${program}) endif() endforeach() @@ -390,7 +390,9 @@ macro(process_options) if(${NS3_CLANG_FORMAT}) find_program(CLANG_FORMAT clang-format) - if(CLANG_FORMAT) + if("${CLANG_FORMAT}" STREQUAL "CLANG_FORMAT-NOTFOUND") + message(${HIGHLIGHTED_STATUS} "Proceeding without clang-format") + else() file( GLOB_RECURSE ALL_CXX_SOURCE_FILES @@ -408,17 +410,17 @@ macro(process_options) ${ALL_CXX_SOURCE_FILES} ) unset(ALL_CXX_SOURCE_FILES) - else() - message(STATUS "Proceeding without clang-format target") endif() endif() if(${NS3_CLANG_TIDY}) find_program(CLANG_TIDY clang-tidy) - if(CLANG_TIDY) - set(CMAKE_CXX_CLANG_TIDY "clang-tidy") + if("${CLANG_TIDY}" STREQUAL "CLANG_TIDY-NOTFOUND") + message(${HIGHLIGHTED_STATUS} + "Proceeding without clang-tidy static analysis" + ) else() - message(STATUS "Proceeding without clang-tidy static analysis") + set(CMAKE_CXX_CLANG_TIDY "clang-tidy") endif() endif() @@ -457,7 +459,9 @@ macro(process_options) mark_as_advanced(CMAKE_FORMAT_PROGRAM) find_program(CMAKE_FORMAT_PROGRAM cmake-format HINTS ~/.local/bin) - if(CMAKE_FORMAT_PROGRAM) + if("${CMAKE_FORMAT_PROGRAM}" STREQUAL "CMAKE_FORMAT_PROGRAM-NOTFOUND") + message(${HIGHLIGHTED_STATUS} "Proceeding without cmake-format") + else() file(GLOB_RECURSE MODULES_CMAKE_FILES src/**/CMakeLists.txt contrib/**/CMakeLists.txt examples/**/CMakeLists.txt ) @@ -586,7 +590,9 @@ macro(process_options) # it will fail. Worse than that: it will fail silently. We use the wrapper # to get a iwyu.log file in the ns-3-dev folder. find_program(INCLUDE_WHAT_YOU_USE_PROG iwyu) - if(NOT INCLUDE_WHAT_YOU_USE_PROG) + if("${INCLUDE_WHAT_YOU_USE_PROG}" STREQUAL + "INCLUDE_WHAT_YOU_USE_PROG-NOTFOUND" + ) message(FATAL_ERROR "iwyu (include-what-you-use) was not found.") endif() message(STATUS "iwyu is enabled") @@ -794,7 +800,7 @@ macro(process_options) if(castxml IN_LIST missing_packages) mark_as_advanced(CASTXML) find_program(CASTXML castxml) - if(${CASTXML}) + if(NOT ("${CASTXML}" STREQUAL "CASTXML-NOTFOUND")) list(REMOVE_ITEM missing_packages castxml) endif() endif()