1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
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)
|