2024-01-08 14:36:00 -08:00
|
|
|
vcpkg_from_github(
|
|
|
|
OUT_SOURCE_PATH SOURCE_PATH
|
|
|
|
REPO juce-framework/JUCE
|
|
|
|
REF "${VERSION}"
|
2024-12-09 11:18:06 -08:00
|
|
|
SHA512 c1cb2f315c2b3b9c534d21b16d31e641661fbb9ad55b29a0949c038cb69cce65d35c8c669a400e33fdcedd7fc5ef578a1eba787826d525402330551c4d240fe6
|
2024-01-08 14:36:00 -08:00
|
|
|
HEAD_REF master
|
|
|
|
PATCHES
|
|
|
|
"0001-build-allow-setting-JUCE_PLUGINHOST_LADSPA.patch"
|
|
|
|
"0002-build-linux-find_packages.patch"
|
|
|
|
"0003-build-forward-vcpkg-toolchain.patch"
|
|
|
|
"0004-install-paths.patch"
|
|
|
|
)
|
|
|
|
|
|
|
|
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
|
|
|
|
FEATURES
|
|
|
|
"extras" JUCE_BUILD_EXTRAS
|
|
|
|
"ladspa" JUCE_PLUGINHOST_LADSPA
|
|
|
|
"jack" JUCE_JACK
|
|
|
|
"curl" JUCE_USE_CURL
|
|
|
|
"freetype" JUCE_USE_FREETYPE
|
|
|
|
"xcursor" JUCE_USE_XCURSOR
|
|
|
|
"xinerama" JUCE_USE_XINERAMA
|
|
|
|
"xrandr" JUCE_USE_XRANDR
|
|
|
|
"xrender" JUCE_USE_XRENDER
|
|
|
|
"web-browser" JUCE_WEB_BROWSER
|
|
|
|
"opengl" JUCE_OPENGL
|
|
|
|
)
|
|
|
|
# Based on https://github.com/juce-framework/JUCE/blob/master/docs/Linux%20Dependencies.md
|
|
|
|
if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux")
|
|
|
|
message("juce currently requires the following programs from the system package manager:
|
|
|
|
libx11-dev libxcomposite-dev libxext-dev
|
|
|
|
On Ubuntu derivatives:
|
|
|
|
sudo apt install libx11-dev libxcomposite-dev libxext-dev
|
|
|
|
")
|
|
|
|
if(JUCE_OPENGL)
|
|
|
|
message("juce with opengl feature requires the following packages via the system package manager:
|
|
|
|
libglu1-mesa-dev mesa-common-dev
|
|
|
|
On Ubuntu derivatives:
|
|
|
|
sudo apt install libglu1-mesa-dev mesa-common-dev
|
|
|
|
")
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if(${JUCE_PLUGINHOST_LADSPA})
|
|
|
|
message("juce with ladspa feature requires the following packages via the system package manager:
|
|
|
|
ladspa-sdk
|
|
|
|
On Ubuntu derivatives:
|
|
|
|
sudo apt install ladspa-sdk
|
|
|
|
")
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if(JUCE_USE_XCURSOR)
|
|
|
|
message("juce with xcursor feature requires the following packages via the system package manager:
|
|
|
|
libxcursor-dev
|
|
|
|
On Ubuntu derivatives:
|
|
|
|
sudo apt install libxcursor-dev
|
|
|
|
")
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if(JUCE_USE_XINERAMA)
|
|
|
|
message("juce with xinerama feature requires the following packages via the system package manager:
|
|
|
|
libxinerama-dev
|
|
|
|
On Ubuntu derivatives:
|
|
|
|
sudo apt install libxinerama-dev
|
|
|
|
")
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if(JUCE_USE_XRANDR)
|
|
|
|
message("juce with xrandr feature requires the following packages via the system package manager:
|
|
|
|
libxrandr-dev
|
|
|
|
On Ubuntu derivatives:
|
|
|
|
sudo apt install libxrandr-dev
|
|
|
|
")
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if(JUCE_USE_XRENDER)
|
|
|
|
message("juce with xrender feature requires the following packages via the system package manager:
|
|
|
|
libxrender-dev
|
|
|
|
On Ubuntu derivatives:
|
|
|
|
sudo apt install libxrender-dev
|
|
|
|
")
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if(JUCE_WEB_BROWSER)
|
|
|
|
message("juce with web-browser feature requires the following packages via the system package manager:
|
|
|
|
libwebkit2gtk-4.0-dev
|
|
|
|
On Ubuntu derivatives:
|
|
|
|
sudo apt install libwebkit2gtk-4.0-dev
|
|
|
|
")
|
|
|
|
endif()
|
|
|
|
endif()
|
|
|
|
|
|
|
|
vcpkg_cmake_configure(
|
|
|
|
SOURCE_PATH "${SOURCE_PATH}"
|
|
|
|
OPTIONS
|
|
|
|
-DJUCE_ENABLE_MODULE_SOURCE_GROUPS=ON
|
|
|
|
${FEATURE_OPTIONS}
|
|
|
|
MAYBE_UNUSED_VARIABLES
|
|
|
|
JUCE_PLUGINHOST_LADSPA
|
|
|
|
JUCE_JACK
|
|
|
|
JUCE_OPENGL
|
|
|
|
JUCE_USE_CURL
|
|
|
|
JUCE_USE_FREETYPE
|
|
|
|
JUCE_USE_XCURSOR
|
|
|
|
JUCE_USE_XINERAMA
|
|
|
|
JUCE_USE_XRANDR
|
|
|
|
JUCE_USE_XRENDER
|
|
|
|
JUCE_WEB_BROWSER
|
|
|
|
)
|
|
|
|
|
|
|
|
vcpkg_cmake_install()
|
|
|
|
vcpkg_cmake_config_fixup()
|
|
|
|
vcpkg_fixup_pkgconfig()
|
|
|
|
vcpkg_copy_pdbs()
|
|
|
|
|
|
|
|
# Copy tools
|
|
|
|
file(GLOB JUCE_TOOLS "${CURRENT_PACKAGES_DIR}/bin/JUCE-${VERSION}/*")
|
|
|
|
foreach(JUCE_TOOL_PATH IN LISTS JUCE_TOOLS)
|
|
|
|
get_filename_component(JUCE_TOOL "${JUCE_TOOL_PATH}" NAME_WLE)
|
|
|
|
get_filename_component(JUCE_TOOL_DIR "${JUCE_TOOL_PATH}" DIRECTORY)
|
|
|
|
vcpkg_copy_tools(TOOL_NAMES ${JUCE_TOOL} SEARCH_DIR "${JUCE_TOOL_DIR}")
|
|
|
|
endforeach()
|
|
|
|
|
|
|
|
# Copy extras tools
|
|
|
|
if(JUCE_BUILD_EXTRAS)
|
|
|
|
file(GLOB JUCE_EXTRA_TOOLS "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/extras/*/*_artefacts/Release/*")
|
|
|
|
foreach(JUCE_EXTRA_TOOL_PATH IN LISTS JUCE_EXTRA_TOOLS)
|
|
|
|
get_filename_component(JUCE_EXTRA_TOOL "${JUCE_EXTRA_TOOL_PATH}" NAME_WLE)
|
|
|
|
get_filename_component(JUCE_EXTRA_TOOL_DIR "${JUCE_EXTRA_TOOL_PATH}" DIRECTORY)
|
|
|
|
vcpkg_copy_tools(TOOL_NAMES ${JUCE_EXTRA_TOOL} SEARCH_DIR "${JUCE_EXTRA_TOOL_DIR}")
|
|
|
|
endforeach()
|
|
|
|
endif()
|
|
|
|
|
|
|
|
# Copy JUCE modules including the cpp/cmake files
|
|
|
|
file(GLOB JUCE_MODULES_FOLDERS "${CURRENT_PACKAGES_DIR}/include/JUCE-${VERSION}/modules/*")
|
|
|
|
foreach(JUCE_MODULE_FOLDER IN LISTS JUCE_MODULES_FOLDERS)
|
|
|
|
file(COPY "${JUCE_MODULE_FOLDER}" DESTINATION "${CURRENT_PACKAGES_DIR}/include")
|
|
|
|
endforeach()
|
|
|
|
|
|
|
|
# Remove duplicate tools directories
|
|
|
|
file(REMOVE_RECURSE
|
|
|
|
"${CURRENT_PACKAGES_DIR}/bin"
|
|
|
|
"${CURRENT_PACKAGES_DIR}/debug/bin"
|
|
|
|
)
|
|
|
|
|
|
|
|
# Remove duplicate debug files
|
|
|
|
file(REMOVE_RECURSE
|
|
|
|
"${CURRENT_PACKAGES_DIR}/debug/"
|
|
|
|
)
|
|
|
|
|
|
|
|
# Copy license
|
|
|
|
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md")
|
|
|
|
|
|
|
|
# Copy usage examples
|
|
|
|
file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage"
|
|
|
|
DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
|