| @@ -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() | |||
| @@ -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) | |||