mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-10 23:44:24 +00:00
CMake: Make IDE folder structure mirror disk structure
This commit is contained in:
parent
766f6cbf16
commit
f79c49a171
5 changed files with 33 additions and 5 deletions
|
|
@ -20,6 +20,9 @@ project(JUCE VERSION 6.0.0 LANGUAGES C CXX)
|
||||||
|
|
||||||
set_property(GLOBAL PROPERTY USE_FOLDERS YES)
|
set_property(GLOBAL PROPERTY USE_FOLDERS YES)
|
||||||
|
|
||||||
|
set(JUCE_MODULES_DIR "${JUCE_SOURCE_DIR}/modules" CACHE INTERNAL
|
||||||
|
"The path to JUCE modules")
|
||||||
|
|
||||||
include(extras/Build/CMake/JUCEHelperTargets.cmake)
|
include(extras/Build/CMake/JUCEHelperTargets.cmake)
|
||||||
include(extras/Build/CMake/JUCEUtils.cmake)
|
include(extras/Build/CMake/JUCEUtils.cmake)
|
||||||
|
|
||||||
|
|
@ -97,7 +100,7 @@ configure_package_config_file("${JUCE_CMAKE_UTILS_DIR}/JUCEConfig.cmake.in"
|
||||||
INSTALL_DESTINATION "${JUCE_INSTALL_DESTINATION}")
|
INSTALL_DESTINATION "${JUCE_INSTALL_DESTINATION}")
|
||||||
|
|
||||||
set(JUCE_EXPORT_FILE_NAME "JUCEBuildTree.cmake")
|
set(JUCE_EXPORT_FILE_NAME "JUCEBuildTree.cmake")
|
||||||
set(JUCE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/modules")
|
set(JUCE_MODULE_PATH "${JUCE_MODULES_DIR}")
|
||||||
export(EXPORT JUCE NAMESPACE juce:: FILE "${JUCE_EXPORT_FILE_NAME}")
|
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)
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,8 @@
|
||||||
#
|
#
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
|
|
||||||
|
set(CMAKE_FOLDER examples)
|
||||||
|
|
||||||
add_subdirectory(CMake)
|
add_subdirectory(CMake)
|
||||||
add_subdirectory(DemoRunner)
|
add_subdirectory(DemoRunner)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,9 @@ endif()
|
||||||
|
|
||||||
check_required_components("@PROJECT_NAME@")
|
check_required_components("@PROJECT_NAME@")
|
||||||
|
|
||||||
|
set(JUCE_MODULES_DIR "@PACKAGE_JUCE_MODULE_PATH@" CACHE INTERNAL
|
||||||
|
"The path to JUCE modules")
|
||||||
|
|
||||||
include("@PACKAGE_UTILS_INSTALL_DIR@/JUCEUtils.cmake")
|
include("@PACKAGE_UTILS_INSTALL_DIR@/JUCEUtils.cmake")
|
||||||
|
|
||||||
set(_juce_modules
|
set(_juce_modules
|
||||||
|
|
|
||||||
|
|
@ -497,8 +497,6 @@ function(juce_add_module module_path)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
source_group(Modules FILES ${all_module_sources})
|
|
||||||
|
|
||||||
if(${module_name} STREQUAL "juce_audio_processors")
|
if(${module_name} STREQUAL "juce_audio_processors")
|
||||||
add_library(juce_vst3_headers INTERFACE)
|
add_library(juce_vst3_headers INTERFACE)
|
||||||
target_include_directories(juce_vst3_headers INTERFACE
|
target_include_directories(juce_vst3_headers INTERFACE
|
||||||
|
|
@ -1321,6 +1319,19 @@ function(_juce_set_plugin_target_properties shared_code_target kind)
|
||||||
endif()
|
endif()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
|
# Place plugin wrapper targets alongside the shared code target in IDEs
|
||||||
|
function(_juce_set_plugin_folder_property shared_target wrapper_target)
|
||||||
|
get_target_property(folder_to_use "${shared_target}" FOLDER)
|
||||||
|
|
||||||
|
if(folder_to_use STREQUAL "folder_to_use-NOTFOUND")
|
||||||
|
set(folder_to_use "${shared_target}")
|
||||||
|
else()
|
||||||
|
set(folder_to_use "${folder_to_use}/${shared_target}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set_target_properties("${wrapper_target}" PROPERTIES FOLDER "${folder_to_use}")
|
||||||
|
endfunction()
|
||||||
|
|
||||||
# Convert the cmake plugin kind ids to strings understood by ProjectType::Target::typeFromName
|
# Convert the cmake plugin kind ids to strings understood by ProjectType::Target::typeFromName
|
||||||
function(_juce_get_plugin_kind_name kind out_var)
|
function(_juce_get_plugin_kind_name kind out_var)
|
||||||
if(kind STREQUAL "AU")
|
if(kind STREQUAL "AU")
|
||||||
|
|
@ -1367,6 +1378,8 @@ function(_juce_link_plugin_wrapper shared_code_target kind)
|
||||||
|
|
||||||
_juce_set_output_name(${target_name} $<TARGET_PROPERTY:${shared_code_target},JUCE_PRODUCT_NAME>)
|
_juce_set_output_name(${target_name} $<TARGET_PROPERTY:${shared_code_target},JUCE_PRODUCT_NAME>)
|
||||||
|
|
||||||
|
_juce_set_plugin_folder_property("${shared_code_target}" "${target_name}")
|
||||||
|
|
||||||
_juce_get_plugin_kind_name(${kind} juce_kind_string)
|
_juce_get_plugin_kind_name(${kind} juce_kind_string)
|
||||||
set_target_properties(${target_name} PROPERTIES
|
set_target_properties(${target_name} PROPERTIES
|
||||||
XCODE_ATTRIBUTE_CLANG_LINK_OBJC_RUNTIME NO
|
XCODE_ATTRIBUTE_CLANG_LINK_OBJC_RUNTIME NO
|
||||||
|
|
@ -1375,7 +1388,6 @@ function(_juce_link_plugin_wrapper shared_code_target kind)
|
||||||
VISIBILITY_INLINES_HIDDEN TRUE
|
VISIBILITY_INLINES_HIDDEN TRUE
|
||||||
C_VISIBILITY_PRESET hidden
|
C_VISIBILITY_PRESET hidden
|
||||||
CXX_VISIBILITY_PRESET hidden
|
CXX_VISIBILITY_PRESET hidden
|
||||||
FOLDER ${shared_code_target}
|
|
||||||
JUCE_TARGET_KIND_STRING "${juce_kind_string}")
|
JUCE_TARGET_KIND_STRING "${juce_kind_string}")
|
||||||
add_dependencies(${shared_code_target}_All ${target_name})
|
add_dependencies(${shared_code_target}_All ${target_name})
|
||||||
|
|
||||||
|
|
@ -1523,7 +1535,7 @@ function(_juce_configure_plugin_targets target)
|
||||||
|
|
||||||
# A convenience target for building all plugin variations at once
|
# A convenience target for building all plugin variations at once
|
||||||
add_custom_target(${target}_All)
|
add_custom_target(${target}_All)
|
||||||
set_target_properties(${target}_All PROPERTIES FOLDER ${target})
|
_juce_set_plugin_folder_property("${target}" "${target}_All")
|
||||||
|
|
||||||
_juce_get_platform_plugin_kinds(plugin_kinds)
|
_juce_get_platform_plugin_kinds(plugin_kinds)
|
||||||
|
|
||||||
|
|
@ -1926,6 +1938,13 @@ function(_juce_initialise_target target)
|
||||||
|
|
||||||
_juce_write_generate_time_info(${target})
|
_juce_write_generate_time_info(${target})
|
||||||
_juce_link_optional_libraries(${target})
|
_juce_link_optional_libraries(${target})
|
||||||
|
|
||||||
|
file(GLOB juce_module_folders RELATIVE "${JUCE_MODULES_DIR}" "${JUCE_MODULES_DIR}/*")
|
||||||
|
|
||||||
|
foreach(module_folder IN LISTS juce_module_folders)
|
||||||
|
file(GLOB_RECURSE juce_module_files "${JUCE_MODULES_DIR}/${module_folder}/*")
|
||||||
|
source_group(TREE "${JUCE_MODULES_DIR}" PREFIX "Modules" FILES ${juce_module_files})
|
||||||
|
endforeach()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
# ==================================================================================================
|
# ==================================================================================================
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@
|
||||||
#
|
#
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
|
|
||||||
|
set(CMAKE_FOLDER extras)
|
||||||
add_subdirectory(AudioPerformanceTest)
|
add_subdirectory(AudioPerformanceTest)
|
||||||
add_subdirectory(AudioPluginHost)
|
add_subdirectory(AudioPluginHost)
|
||||||
add_subdirectory(BinaryBuilder)
|
add_subdirectory(BinaryBuilder)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue