2025-10-22 09:20:23 +02:00

84 lines
3.2 KiB
CMake

# ==============================================================================
#
# This file is part of the JUCE framework examples.
# Copyright (c) Raw Material Software Limited
#
# The code included in this file is provided under the terms of the ISC license
# http://www.isc.org/downloads/software-support-policy/isc-license. Permission
# to use, copy, modify, and/or distribute this software for any purpose with or
# without fee is hereby granted provided that the above copyright notice and
# this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
# AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
# OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
#
# ==============================================================================
set(CMAKE_FOLDER examples)
add_subdirectory(CMake)
add_subdirectory(DemoRunner)
function(_juce_add_pips)
file(GLOB headers
CONFIGURE_DEPENDS LIST_DIRECTORIES false
"${CMAKE_CURRENT_SOURCE_DIR}/*.h")
if((CMAKE_SYSTEM_NAME STREQUAL "Linux") OR (CMAKE_SYSTEM_NAME MATCHES ".*BSD"))
list(REMOVE_ITEM headers
"${CMAKE_CURRENT_SOURCE_DIR}/CameraDemo.h"
"${CMAKE_CURRENT_SOURCE_DIR}/PushNotificationsDemo.h"
"${CMAKE_CURRENT_SOURCE_DIR}/VideoDemo.h")
elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows")
list(REMOVE_ITEM headers
"${CMAKE_CURRENT_SOURCE_DIR}/PushNotificationsDemo.h")
endif()
if(NOT (TARGET juce_ara_sdk
AND (CMAKE_SYSTEM_NAME STREQUAL "Windows"
OR CMAKE_SYSTEM_NAME STREQUAL "Darwin"
OR CMAKE_SYSTEM_NAME STREQUAL "Linux")))
list(REMOVE_ITEM headers
"${CMAKE_CURRENT_SOURCE_DIR}/ARAPluginDemo.h")
endif()
if(NOT TARGET juce_vst2_sdk)
list(REMOVE_ITEM headers "${CMAKE_CURRENT_SOURCE_DIR}/ReaperEmbeddedViewPluginDemo.h")
endif()
if((CMAKE_SYSTEM_NAME STREQUAL "Windows")
AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/WebViewPluginDemo.h")
if(NOT ("${JUCE_CMAKE_UTILS_DIR}" IN_LIST CMAKE_MODULE_PATH))
list(APPEND CMAKE_MODULE_PATH "${JUCE_CMAKE_UTILS_DIR}")
endif()
find_package(WebView2)
if(NOT WebView2_FOUND)
list(REMOVE_ITEM headers "${CMAKE_CURRENT_SOURCE_DIR}/WebViewPluginDemo.h")
message(WARNING "The WebViewPluginDemo was not enabled because the WebView2 package wasn't found.")
endif()
endif()
foreach(header IN ITEMS ${headers})
juce_add_pip(${header} added_target)
target_link_libraries(${added_target} PUBLIC
juce::juce_recommended_config_flags
juce::juce_recommended_lto_flags
juce::juce_recommended_warning_flags)
endforeach()
endfunction()
add_subdirectory(Audio)
add_subdirectory(DSP)
add_subdirectory(GUI)
add_subdirectory(Plugins)
add_subdirectory(Utilities)