mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-10 23:44:24 +00:00
CMake: Move helper targets to dedicated file
This commit is contained in:
parent
05d0560c5b
commit
6f016aa03b
3 changed files with 68 additions and 70 deletions
|
|
@ -20,6 +20,7 @@ project(JUCE VERSION 6.0.0 LANGUAGES C CXX)
|
|||
|
||||
set_property(GLOBAL PROPERTY USE_FOLDERS YES)
|
||||
|
||||
include(extras/Build/CMake/JUCEHelperTargets.cmake)
|
||||
include(extras/Build/CMake/JUCEUtils.cmake)
|
||||
|
||||
juce_disable_default_flags()
|
||||
|
|
|
|||
67
extras/Build/CMake/JUCEHelperTargets.cmake
Normal file
67
extras/Build/CMake/JUCEHelperTargets.cmake
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
add_library(juce_recommended_warning_flags INTERFACE)
|
||||
add_library(juce::juce_recommended_warning_flags ALIAS juce_recommended_warning_flags)
|
||||
|
||||
if((CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") OR (CMAKE_CXX_SIMULATE_ID STREQUAL "MSVC"))
|
||||
target_compile_options(juce_recommended_warning_flags INTERFACE "/W4")
|
||||
elseif((CMAKE_CXX_COMPILER_ID STREQUAL "Clang") OR (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang"))
|
||||
target_compile_options(juce_recommended_warning_flags INTERFACE
|
||||
-Wall -Wshadow-all -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized
|
||||
-Wunused-parameter -Wconversion -Wsign-compare -Wint-conversion
|
||||
-Wconditional-uninitialized -Woverloaded-virtual -Wreorder
|
||||
-Wconstant-conversion -Wsign-conversion -Wunused-private-field
|
||||
-Wbool-conversion -Wextra-semi -Wunreachable-code
|
||||
-Wzero-as-null-pointer-constant -Wcast-align
|
||||
-Winconsistent-missing-destructor-override -Wshift-sign-overflow
|
||||
-Wnullable-to-nonnull-conversion -Wno-missing-field-initializers
|
||||
-Wno-ignored-qualifiers -Wswitch-enum)
|
||||
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
||||
target_compile_options(juce_recommended_warning_flags INTERFACE
|
||||
-Wall -Wextra -Wstrict-aliasing -Wuninitialized -Wunused-parameter
|
||||
-Wsign-compare -Woverloaded-virtual -Wreorder -Wsign-conversion
|
||||
-Wunreachable-code -Wzero-as-null-pointer-constant -Wcast-align
|
||||
-Wno-implicit-fallthrough -Wno-maybe-uninitialized
|
||||
-Wno-missing-field-initializers -Wno-ignored-qualifiers -Wswitch-enum
|
||||
-Wswitch-default -Wredundant-decls)
|
||||
|
||||
if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER "7.0.0")
|
||||
target_compile_options(juce_recommended_warning_flags INTERFACE "-Wno-strict-overflow")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
install(TARGETS juce_recommended_warning_flags EXPORT JUCE)
|
||||
|
||||
# ==================================================================================================
|
||||
|
||||
add_library(juce_recommended_config_flags INTERFACE)
|
||||
add_library(juce::juce_recommended_config_flags ALIAS juce_recommended_config_flags)
|
||||
|
||||
if((CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") OR (CMAKE_CXX_SIMULATE_ID STREQUAL "MSVC"))
|
||||
target_compile_options(juce_recommended_config_flags INTERFACE
|
||||
$<$<CONFIG:Debug>:/Od /MP /EHsc>
|
||||
$<$<CONFIG:Release>:/Ox /MP /EHsc>)
|
||||
elseif((CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
||||
OR (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
|
||||
OR (CMAKE_CXX_COMPILER_ID STREQUAL "GNU"))
|
||||
target_compile_options(juce_recommended_config_flags INTERFACE
|
||||
$<$<CONFIG:Debug>:-g -O0>
|
||||
$<$<CONFIG:Release>:-O3>)
|
||||
endif()
|
||||
|
||||
install(TARGETS juce_recommended_config_flags EXPORT JUCE)
|
||||
|
||||
# ==================================================================================================
|
||||
|
||||
add_library(juce_recommended_lto_flags INTERFACE)
|
||||
add_library(juce::juce_recommended_lto_flags ALIAS juce_recommended_lto_flags)
|
||||
|
||||
if((CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") OR (CMAKE_CXX_SIMULATE_ID STREQUAL "MSVC"))
|
||||
target_compile_options(juce_recommended_lto_flags INTERFACE $<$<CONFIG:Release>:/GL>)
|
||||
target_link_libraries(juce_recommended_lto_flags INTERFACE $<$<CONFIG:Release>:-LTCG>)
|
||||
elseif((CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
||||
OR (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
|
||||
OR (CMAKE_CXX_COMPILER_ID STREQUAL "GNU"))
|
||||
target_compile_options(juce_recommended_lto_flags INTERFACE $<$<CONFIG:Release>:-flto>)
|
||||
target_link_libraries(juce_recommended_lto_flags INTERFACE $<$<CONFIG:Release>:-flto>)
|
||||
endif()
|
||||
|
||||
install(TARGETS juce_recommended_lto_flags EXPORT JUCE)
|
||||
|
|
@ -2181,73 +2181,3 @@ function(juce_disable_default_flags)
|
|||
endforeach()
|
||||
endforeach()
|
||||
endfunction()
|
||||
|
||||
# ==================================================================================================
|
||||
|
||||
add_library(juce_recommended_warning_flags INTERFACE)
|
||||
add_library(juce::juce_recommended_warning_flags ALIAS juce_recommended_warning_flags)
|
||||
|
||||
if((CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") OR (CMAKE_CXX_SIMULATE_ID STREQUAL "MSVC"))
|
||||
target_compile_options(juce_recommended_warning_flags INTERFACE "/W4")
|
||||
elseif((CMAKE_CXX_COMPILER_ID STREQUAL "Clang") OR (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang"))
|
||||
target_compile_options(juce_recommended_warning_flags INTERFACE
|
||||
-Wall -Wshadow-all -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized
|
||||
-Wunused-parameter -Wconversion -Wsign-compare -Wint-conversion
|
||||
-Wconditional-uninitialized -Woverloaded-virtual -Wreorder
|
||||
-Wconstant-conversion -Wsign-conversion -Wunused-private-field
|
||||
-Wbool-conversion -Wextra-semi -Wunreachable-code
|
||||
-Wzero-as-null-pointer-constant -Wcast-align
|
||||
-Winconsistent-missing-destructor-override -Wshift-sign-overflow
|
||||
-Wnullable-to-nonnull-conversion -Wno-missing-field-initializers
|
||||
-Wno-ignored-qualifiers -Wswitch-enum)
|
||||
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
||||
target_compile_options(juce_recommended_warning_flags INTERFACE
|
||||
-Wall -Wextra -Wstrict-aliasing -Wuninitialized -Wunused-parameter
|
||||
-Wsign-compare -Woverloaded-virtual -Wreorder -Wsign-conversion
|
||||
-Wunreachable-code -Wzero-as-null-pointer-constant -Wcast-align
|
||||
-Wno-implicit-fallthrough -Wno-maybe-uninitialized
|
||||
-Wno-missing-field-initializers -Wno-ignored-qualifiers -Wswitch-enum
|
||||
-Wswitch-default -Wredundant-decls)
|
||||
|
||||
if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER "7.0.0")
|
||||
target_compile_options(juce_recommended_warning_flags INTERFACE "-Wno-strict-overflow")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
install(TARGETS juce_recommended_warning_flags EXPORT JUCE)
|
||||
|
||||
# ==================================================================================================
|
||||
|
||||
add_library(juce_recommended_config_flags INTERFACE)
|
||||
add_library(juce::juce_recommended_config_flags ALIAS juce_recommended_config_flags)
|
||||
|
||||
if((CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") OR (CMAKE_CXX_SIMULATE_ID STREQUAL "MSVC"))
|
||||
target_compile_options(juce_recommended_config_flags INTERFACE
|
||||
$<$<CONFIG:Debug>:/Od /MP /EHsc>
|
||||
$<$<CONFIG:Release>:/Ox /MP /EHsc>)
|
||||
elseif((CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
||||
OR (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
|
||||
OR (CMAKE_CXX_COMPILER_ID STREQUAL "GNU"))
|
||||
target_compile_options(juce_recommended_config_flags INTERFACE
|
||||
$<$<CONFIG:Debug>:-g -O0>
|
||||
$<$<CONFIG:Release>:-O3>)
|
||||
endif()
|
||||
|
||||
install(TARGETS juce_recommended_config_flags EXPORT JUCE)
|
||||
|
||||
# ==================================================================================================
|
||||
|
||||
add_library(juce_recommended_lto_flags INTERFACE)
|
||||
add_library(juce::juce_recommended_lto_flags ALIAS juce_recommended_lto_flags)
|
||||
|
||||
if((CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") OR (CMAKE_CXX_SIMULATE_ID STREQUAL "MSVC"))
|
||||
target_compile_options(juce_recommended_lto_flags INTERFACE $<$<CONFIG:Release>:/GL>)
|
||||
target_link_libraries(juce_recommended_lto_flags INTERFACE $<$<CONFIG:Release>:-LTCG>)
|
||||
elseif((CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
||||
OR (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
|
||||
OR (CMAKE_CXX_COMPILER_ID STREQUAL "GNU"))
|
||||
target_compile_options(juce_recommended_lto_flags INTERFACE $<$<CONFIG:Release>:-flto>)
|
||||
target_link_libraries(juce_recommended_lto_flags INTERFACE $<$<CONFIG:Release>:-flto>)
|
||||
endif()
|
||||
|
||||
install(TARGETS juce_recommended_lto_flags EXPORT JUCE)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue