diff options
| author | Mike Taves <mwtoews@gmail.com> | 2019-04-05 00:18:16 +1300 |
|---|---|---|
| committer | Mike Taves <mwtoews@gmail.com> | 2019-04-05 22:49:43 +1300 |
| commit | e41b9f143c783651ce8576f0ccc5ca612883c9e6 (patch) | |
| tree | 6256dc65b4f4d4adb76b6b8b2f74c47e65b99633 /src/lib_proj.cmake | |
| parent | 1e2e512f9a671df504f6f01eee53dc26939b3c0a (diff) | |
| download | PROJ-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.cmake | 18 |
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 |
