1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00

CMake: Include helper targets, rather than exporting them

This change should mean that if JUCE is installed using one compiler
(e.g. clang) and then consumed in a build that uses a different compiler
(e.g. gcc), the helper targets will use the correct flags for both
compilers.
This commit is contained in:
reuk 2020-06-29 11:12:14 +01:00 committed by reuk
parent eaf2dd5ef8
commit a3b68f5c60
4 changed files with 4 additions and 15 deletions

View file

@ -30,7 +30,6 @@ set_property(GLOBAL PROPERTY USE_FOLDERS YES)
set(JUCE_MODULES_DIR "${JUCE_SOURCE_DIR}/modules" CACHE INTERNAL set(JUCE_MODULES_DIR "${JUCE_SOURCE_DIR}/modules" CACHE INTERNAL
"The path to JUCE modules") "The path to JUCE modules")
include(extras/Build/CMake/JUCEHelperTargets.cmake)
include(extras/Build/CMake/JUCEUtils.cmake) include(extras/Build/CMake/JUCEUtils.cmake)
juce_disable_default_flags() juce_disable_default_flags()
@ -96,8 +95,6 @@ write_basic_package_version_file("${JUCE_BINARY_DIR}/JUCEConfigVersion.cmake"
set(JUCE_INSTALL_DESTINATION "lib/cmake/JUCE-${JUCE_VERSION}" CACHE STRING set(JUCE_INSTALL_DESTINATION "lib/cmake/JUCE-${JUCE_VERSION}" CACHE STRING
"The location, relative to the install prefix, where the JUCE config file will be installed") "The location, relative to the install prefix, where the JUCE config file will be installed")
install(EXPORT JUCE NAMESPACE juce:: DESTINATION "${JUCE_INSTALL_DESTINATION}")
set(JUCE_EXPORT_FILE_NAME "JUCE.cmake")
set(JUCE_MODULE_PATH "include/JUCE-${JUCE_VERSION}/modules") set(JUCE_MODULE_PATH "include/JUCE-${JUCE_VERSION}/modules")
set(UTILS_INSTALL_DIR "${JUCE_INSTALL_DESTINATION}") set(UTILS_INSTALL_DIR "${JUCE_INSTALL_DESTINATION}")
set(JUCEAIDE_PATH "${JUCE_TOOL_INSTALL_DIR}/${JUCE_JUCEAIDE_NAME}") set(JUCEAIDE_PATH "${JUCE_TOOL_INSTALL_DIR}/${JUCE_JUCEAIDE_NAME}")
@ -106,9 +103,7 @@ configure_package_config_file("${JUCE_CMAKE_UTILS_DIR}/JUCEConfig.cmake.in"
PATH_VARS UTILS_INSTALL_DIR JUCEAIDE_PATH JUCE_MODULE_PATH PATH_VARS UTILS_INSTALL_DIR JUCEAIDE_PATH JUCE_MODULE_PATH
INSTALL_DESTINATION "${JUCE_INSTALL_DESTINATION}") INSTALL_DESTINATION "${JUCE_INSTALL_DESTINATION}")
set(JUCE_EXPORT_FILE_NAME "JUCEBuildTree.cmake")
set(JUCE_MODULE_PATH "${JUCE_MODULES_DIR}") set(JUCE_MODULE_PATH "${JUCE_MODULES_DIR}")
export(EXPORT JUCE NAMESPACE juce:: FILE "${JUCE_EXPORT_FILE_NAME}")
set(UTILS_INSTALL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/extras/Build/CMake") set(UTILS_INSTALL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/extras/Build/CMake")
get_target_property(JUCEAIDE_PATH juceaide IMPORTED_LOCATION) get_target_property(JUCEAIDE_PATH juceaide IMPORTED_LOCATION)
configure_package_config_file("${JUCE_CMAKE_UTILS_DIR}/JUCEConfig.cmake.in" configure_package_config_file("${JUCE_CMAKE_UTILS_DIR}/JUCEConfig.cmake.in"
@ -126,5 +121,6 @@ install(FILES "${JUCE_BINARY_DIR}/JUCEConfigVersion.cmake"
"${JUCE_CMAKE_UTILS_DIR}/RecentFilesMenuTemplate.nib" "${JUCE_CMAKE_UTILS_DIR}/RecentFilesMenuTemplate.nib"
"${JUCE_CMAKE_UTILS_DIR}/UnityPluginGUIScript.cs.in" "${JUCE_CMAKE_UTILS_DIR}/UnityPluginGUIScript.cs.in"
"${JUCE_CMAKE_UTILS_DIR}/copyDir.cmake" "${JUCE_CMAKE_UTILS_DIR}/copyDir.cmake"
"${JUCE_CMAKE_UTILS_DIR}/JUCEHelperTargets.cmake"
"${JUCE_CMAKE_UTILS_DIR}/JUCEUtils.cmake" "${JUCE_CMAKE_UTILS_DIR}/JUCEUtils.cmake"
DESTINATION "${JUCE_INSTALL_DESTINATION}") DESTINATION "${JUCE_INSTALL_DESTINATION}")

View file

@ -20,8 +20,6 @@
@PACKAGE_INIT@ @PACKAGE_INIT@
include("${CMAKE_CURRENT_LIST_DIR}/@JUCE_EXPORT_FILE_NAME@")
if(NOT TARGET juce::juceaide) if(NOT TARGET juce::juceaide)
add_executable(juce::juceaide IMPORTED) add_executable(juce::juceaide IMPORTED)
set_target_properties(juce::juceaide PROPERTIES set_target_properties(juce::juceaide PROPERTIES

View file

@ -28,8 +28,6 @@ elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
endif() endif()
endif() endif()
install(TARGETS juce_recommended_warning_flags EXPORT JUCE)
# ================================================================================================== # ==================================================================================================
add_library(juce_recommended_config_flags INTERFACE) add_library(juce_recommended_config_flags INTERFACE)
@ -37,8 +35,7 @@ add_library(juce::juce_recommended_config_flags ALIAS juce_recommended_config_fl
if((CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") OR (CMAKE_CXX_SIMULATE_ID STREQUAL "MSVC")) if((CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") OR (CMAKE_CXX_SIMULATE_ID STREQUAL "MSVC"))
target_compile_options(juce_recommended_config_flags INTERFACE target_compile_options(juce_recommended_config_flags INTERFACE
$<$<CONFIG:Debug>:/Od /MP /EHsc> $<IF:$<CONFIG:Debug>,/Od,/Ox> $<$<STREQUAL:"${CMAKE_CXX_COMPILER_ID}","MSVC">:/MP> /EHsc)
$<$<CONFIG:Release>:/Ox /MP /EHsc>)
elseif((CMAKE_CXX_COMPILER_ID STREQUAL "Clang") elseif((CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
OR (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang") OR (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
OR (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")) OR (CMAKE_CXX_COMPILER_ID STREQUAL "GNU"))
@ -47,8 +44,6 @@ elseif((CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
$<$<CONFIG:Release>:-O3>) $<$<CONFIG:Release>:-O3>)
endif() endif()
install(TARGETS juce_recommended_config_flags EXPORT JUCE)
# ================================================================================================== # ==================================================================================================
add_library(juce_recommended_lto_flags INTERFACE) add_library(juce_recommended_lto_flags INTERFACE)
@ -63,5 +58,3 @@ elseif((CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
target_compile_options(juce_recommended_lto_flags INTERFACE $<$<CONFIG:Release>:-flto>) target_compile_options(juce_recommended_lto_flags INTERFACE $<$<CONFIG:Release>:-flto>)
target_link_libraries(juce_recommended_lto_flags INTERFACE $<$<CONFIG:Release>:-flto>) target_link_libraries(juce_recommended_lto_flags INTERFACE $<$<CONFIG:Release>:-flto>)
endif() endif()
install(TARGETS juce_recommended_lto_flags EXPORT JUCE)

View file

@ -133,6 +133,8 @@ endif()
set(JUCE_CMAKE_UTILS_DIR ${CMAKE_CURRENT_LIST_DIR} set(JUCE_CMAKE_UTILS_DIR ${CMAKE_CURRENT_LIST_DIR}
CACHE INTERNAL "The path to the folder holding this file and other resources") CACHE INTERNAL "The path to the folder holding this file and other resources")
include("${JUCE_CMAKE_UTILS_DIR}/JUCEHelperTargets.cmake")
# We set up default/fallback copy dirs here. If you need different copy dirs, use # We set up default/fallback copy dirs here. If you need different copy dirs, use
# set_directory_properties or set_target_properties to adjust the values of `JUCE_*_COPY_DIR` at # set_directory_properties or set_target_properties to adjust the values of `JUCE_*_COPY_DIR` at
# the appropriate scope. # the appropriate scope.