diff --git a/CMakeLists.txt b/CMakeLists.txt index 49d85c6..76209f5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,3 +1,5 @@ +# Save cmake input for nested juceaide build +get_cmake_property(vcpkg_input_vars CACHE_VARIABLES) # ============================================================================== # # This file is part of the JUCE framework. @@ -142,7 +144,10 @@ set(JUCE_INSTALL_DESTINATION "lib/cmake/JUCE-${JUCE_VERSION}" CACHE STRING set(JUCE_MODULE_PATH "include/JUCE-${JUCE_VERSION}/modules") set(UTILS_INSTALL_DIR "${JUCE_INSTALL_DESTINATION}") -set(JUCEAIDE_PATH "${JUCE_TOOL_INSTALL_DIR}/${JUCE_JUCEAIDE_NAME}") +set(JUCEAIDE_PATH "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/tools/juce/${JUCE_JUCEAIDE_NAME}") +if(WITH_JUCEAIDE) + set(JUCEAIDE_PATH "${WITH_JUCEAIDE}") +endif() configure_package_config_file("${JUCE_CMAKE_UTILS_DIR}/JUCEConfig.cmake.in" "${JUCE_BINARY_DIR}/JUCEConfig.cmake" PATH_VARS UTILS_INSTALL_DIR JUCEAIDE_PATH JUCE_MODULE_PATH diff --git a/extras/Build/juceaide/CMakeLists.txt b/extras/Build/juceaide/CMakeLists.txt index 17e5520974..b8cab564ec 100644 --- a/extras/Build/juceaide/CMakeLists.txt +++ b/extras/Build/juceaide/CMakeLists.txt @@ -60,6 +60,11 @@ if(JUCE_BUILD_HELPER_TOOLS) export(TARGETS juceaide NAMESPACE juce_tools:: FILE "${JUCE_BINARY_DIR}/JUCEToolsExport.cmake") + +elseif(WITH_JUCEAIDE) + add_executable(juceaide IMPORTED GLOBAL) + set_target_properties(juceaide PROPERTIES IMPORTED_LOCATION "${WITH_JUCEAIDE}") + add_executable(juce::juceaide ALIAS juceaide) else() message(STATUS "Configuring juceaide") @@ -124,14 +129,25 @@ else() list(APPEND PASSTHROUGH_ARGS "-DCMAKE_CXX_COMPILER_LAUNCHER=${CMAKE_CXX_COMPILER_LAUNCHER}") endif() + list(REMOVE_ITEM vcpkg_input_vars "JUCE_BUILD_EXTRAS") + foreach(var IN LISTS vcpkg_input_vars) + list(APPEND PASSTHROUGH_ARGS "-D${var}=$CACHE{${var}}") + endforeach() + + if (NOT DEFINED CMAKE_BUILD_TYPE) + set(JUCE_JUCEAIDE_BUILD_TYPE "Release") + else() + set(JUCE_JUCEAIDE_BUILD_TYPE "${CMAKE_BUILD_TYPE}") + endif() + # Looks like we're bootstrapping, reinvoke CMake execute_process(COMMAND "${CMAKE_COMMAND}" "." "-B${JUCE_BINARY_DIR}/tools" "-G${CMAKE_GENERATOR}" "-DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}" - "-DCMAKE_CONFIGURATION_TYPES=Custom" - "-DCMAKE_BUILD_TYPE=Custom" + "-DCMAKE_CONFIGURATION_TYPES=${JUCE_JUCEAIDE_BUILD_TYPE}" + "-DCMAKE_BUILD_TYPE=${JUCE_JUCEAIDE_BUILD_TYPE}" "-DJUCE_BUILD_HELPER_TOOLS=ON" "-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}" ${PASSTHROUGH_ARGS} @@ -148,7 +164,8 @@ else() execute_process(COMMAND "${CMAKE_COMMAND}" --build "${JUCE_BINARY_DIR}/tools" - --config Custom + --config ${JUCE_JUCEAIDE_BUILD_TYPE} + --target juceaide OUTPUT_VARIABLE command_output ERROR_VARIABLE command_output RESULT_VARIABLE result_variable) @@ -163,7 +180,14 @@ else() include("${JUCE_BINARY_DIR}/tools/JUCEToolsExport.cmake") add_executable(juceaide IMPORTED GLOBAL) - get_target_property(imported_location juce_tools::juceaide IMPORTED_LOCATION_CUSTOM) + + string(TOUPPER ${JUCE_JUCEAIDE_BUILD_TYPE} JUCE_JUCEAIDE_BUILD_TYPE_UPPER) + + get_target_property(imported_location juce_tools::juceaide IMPORTED_LOCATION_${JUCE_JUCEAIDE_BUILD_TYPE_UPPER}) + if(NOT imported_location) + message(FATAL_ERROR "Failed to find imported location for juceaide") + endif() + set_target_properties(juceaide PROPERTIES IMPORTED_LOCATION "${imported_location}") add_executable(juce::juceaide ALIAS juceaide)