From 5b6d3e90315a5fb42880a2b5f19c359dd0cfda5e Mon Sep 17 00:00:00 2001 From: Joao Carreira Date: Sun, 3 Oct 2021 19:19:21 +0100 Subject: [PATCH] Add iwyu --- CMakeLists.txt | 10 ++++++---- lib/CMakeLists.txt | 4 ++++ 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 58c3798..e1dfffb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -57,6 +57,7 @@ OPTION(USE_DYNLOAD "Use dynamic load of modules" ON) OPTION(USE_SSE "Build with SSE support" ON) OPTION(USE_WERROR "Warnings as errors" OFF) OPTION(USE_STATIC "Use static libs" OFF) +OPTION(USE_IWYU "Use include what you use tool" OFF) # #################################################################################################################################################### # Release configuration @@ -237,10 +238,6 @@ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -funroll-loops") # if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic") endif() -IF(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wlogical-op") -ENDIF() - IF(USE_WERROR) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror") ENDIF() @@ -253,6 +250,11 @@ IF(BUILD_WITH_THREAD_SANITIZER) SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fsanitize=thread") ENDIF() +IF(USE_IWYU) + FIND_PROGRAM(iwyu_path NAMES include-what-you-use iwyu REQUIRED) + SET(CXX_INCLUDE_WHAT_YOU_USE ON) +ENDIF() + # #################################################################################################################################################### # Configure targets # #################################################################################################################################################### diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index dd44ad0..c31049a 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -81,6 +81,10 @@ TARGET_LINK_LIBRARIES(${PROJECT_LIBRARY} ${CALYP_LIB_LINKER_DEPENDENCIES}) # TARGET_INCLUDE_DIRECTORIES(${PROJECT_LIBRARY} PUBLIC $ $) SET_TARGET_PROPERTIES(${PROJECT_LIBRARY} PROPERTIES VERSION ${CALYP_VERSION} SOVERSION ${CALYP_VERSION_MAJOR}) +IF(USE_IWYU) + SET_PROPERTY(TARGET ${PROJECT_LIBRARY} PROPERTY CXX_INCLUDE_WHAT_YOU_USE ${iwyu_path}) +ENDIF() + EXPORT(TARGETS ${PROJECT_LIBRARY} FILE ${CMAKE_CURRENT_BINARY_DIR}/CalypTargets.cmake) EXPORT(PACKAGE ${PROJECT_LIBRARY})