aboutsummaryrefslogtreecommitdiff
path: root/src/lib_proj.cmake
diff options
context:
space:
mode:
authorMike Taves <mwtoews@gmail.com>2019-04-05 00:18:16 +1300
committerMike Taves <mwtoews@gmail.com>2019-04-05 22:49:43 +1300
commite41b9f143c783651ce8576f0ccc5ca612883c9e6 (patch)
tree6256dc65b4f4d4adb76b6b8b2f74c47e65b99633 /src/lib_proj.cmake
parent1e2e512f9a671df504f6f01eee53dc26939b3c0a (diff)
downloadPROJ-e41b9f143c783651ce8576f0ccc5ca612883c9e6.tar.gz
PROJ-e41b9f143c783651ce8576f0ccc5ca612883c9e6.zip
CMake: cache C/C++ warn flags to compile PROJ targets
Remove (most) needs to fiddle with CMAKE_C_FLAGS / CMAKE_CXX_FLAGS
Diffstat (limited to 'src/lib_proj.cmake')
-rw-r--r--src/lib_proj.cmake18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/lib_proj.cmake b/src/lib_proj.cmake
index 38bc05d8..635992e4 100644
--- a/src/lib_proj.cmake
+++ b/src/lib_proj.cmake
@@ -42,15 +42,9 @@ if(ENABLE_LTO)
set(CMAKE_REQUIRED_FLAGS "-Wl,-flto")
check_cxx_source_compiles("int main(){ return 0; }"
COMPILER_SUPPORTS_FLTO_FLAG)
- if(COMPILER_SUPPORTS_FLTO_FLAG)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -flto")
- endif()
else()
include(CheckCXXCompilerFlag)
check_cxx_compiler_flag("-flto" COMPILER_SUPPORTS_FLTO_FLAG)
- if(COMPILER_SUPPORTS_FLTO_FLAG)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -flto")
- endif()
endif()
endif()
@@ -351,6 +345,18 @@ add_library(
${ALL_LIBPROJ_HEADERS}
${PROJ_RESOURCES}
)
+target_compile_options(${PROJ_CORE_TARGET}
+ PRIVATE $<$<COMPILE_LANGUAGE:C>:${PROJ_C_WARN_FLAGS}>
+ PRIVATE $<$<COMPILE_LANGUAGE:CXX>:${PROJ_CXX_WARN_FLAGS}>
+)
+
+if(COMPILER_SUPPORTS_FLTO_FLAG)
+ # See https://gitlab.kitware.com/cmake/cmake/issues/15245
+ # CMake v3.9:
+ # set_property(TARGET ${PROJ_CORE_TARGET}
+ # PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE)
+ target_compile_options(${PROJ_CORE_TARGET} PRIVATE -flto)
+endif()
if(NOT CMAKE_VERSION VERSION_LESS 2.8.11)
target_include_directories(${PROJ_CORE_TARGET} INTERFACE