aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/juce/juceaide.diff
blob: d868abf952087078f3dd8182866b528f747282df (plain)
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)