diff --git a/3rdparty/3rdparty.cmake b/3rdparty/3rdparty.cmake index 53694ce380..3daa6376ef 100644 --- a/3rdparty/3rdparty.cmake +++ b/3rdparty/3rdparty.cmake @@ -1,7 +1,13 @@ include(3rdparty/libossia.cmake) -add_subdirectory(3rdparty/QCodeEditor) -disable_qt_plugins(QCodeEditor) +score_use_system(use_sys QCodeEditor) +if(use_sys) + find_package(QCodeEditor GLOBAL QUIET) +endif() +if(NOT TARGET QCodeEditor) + add_subdirectory(3rdparty/QCodeEditor) + disable_qt_plugins(QCodeEditor) +endif() function(disable_var VAR) if(${${VAR}}) @@ -18,6 +24,10 @@ function(restore_var VAR) endif() endfunction() +include(3rdparty/outcome.cmake) +include(3rdparty/quickcpplib.cmake) +include(3rdparty/llfio.cmake) +include(3rdparty/phantomstyle.cmake) include(3rdparty/dspfilters.cmake) include(3rdparty/eigen.cmake) include(3rdparty/gamma.cmake) diff --git a/3rdparty/dspfilters.cmake b/3rdparty/dspfilters.cmake index 448e87f1b3..ac254c863f 100644 --- a/3rdparty/dspfilters.cmake +++ b/3rdparty/dspfilters.cmake @@ -1,3 +1,18 @@ +score_use_system(use_sys DSPFilters) +if(use_sys) + find_package(DSPFilters GLOBAL QUIET) + if(NOT TARGET dspfilters) + find_library(DSPFILTERS_LIBRARY NAMES DSPFilters dspfilters) + find_path(DSPFILTERS_INCLUDE_DIR DspFilters/Dsp.h) + if(DSPFILTERS_LIBRARY AND DSPFILTERS_INCLUDE_DIR) + add_library(dspfilters INTERFACE IMPORTED GLOBAL) + target_include_directories(dspfilters SYSTEM INTERFACE "${DSPFILTERS_INCLUDE_DIR}") + target_link_libraries(dspfilters INTERFACE "${DSPFILTERS_LIBRARY}") + endif() + endif() +endif() + +if(NOT TARGET dspfilters) add_library(dspfilters "${CMAKE_CURRENT_LIST_DIR}/DSPFilters/DSPFilters/source/Bessel.cpp" "${CMAKE_CURRENT_LIST_DIR}/DSPFilters/DSPFilters/source/Biquad.cpp" @@ -30,3 +45,4 @@ target_include_directories( SYSTEM PUBLIC "${CMAKE_CURRENT_LIST_DIR}/DSPFilters/DSPFilters/include" ) +endif() diff --git a/3rdparty/eigen.cmake b/3rdparty/eigen.cmake index b7753d3fec..d3c600f6c1 100644 --- a/3rdparty/eigen.cmake +++ b/3rdparty/eigen.cmake @@ -1,4 +1,5 @@ -if(SCORE_USE_SYSTEM_LIBRARIES) +score_use_system(use_sys eigen) +if(use_sys) find_package(eigen 3.4 GLOBAL CONFIG) endif() diff --git a/3rdparty/gamma.cmake b/3rdparty/gamma.cmake index 3a5695306f..a76ab73e60 100644 --- a/3rdparty/gamma.cmake +++ b/3rdparty/gamma.cmake @@ -1,4 +1,18 @@ +score_use_system(use_sys Gamma) +if(use_sys) + find_package(Gamma GLOBAL QUIET) + if(NOT TARGET gamma) + find_library(GAMMA_LIBRARY NAMES Gamma gamma) + find_path(GAMMA_INCLUDE_DIR Gamma/Gamma.h) + if(GAMMA_LIBRARY AND GAMMA_INCLUDE_DIR) + add_library(gamma INTERFACE IMPORTED GLOBAL) + target_include_directories(gamma SYSTEM INTERFACE "${GAMMA_INCLUDE_DIR}") + target_link_libraries(gamma INTERFACE "${GAMMA_LIBRARY}") + endif() + endif() +endif() +if(NOT TARGET gamma) add_library(gamma STATIC "${CMAKE_CURRENT_LIST_DIR}/Gamma/src/Conversion.cpp" # "${CMAKE_CURRENT_LIST_DIR}/Gamma/src/DFT.cpp" @@ -14,3 +28,4 @@ target_include_directories( PUBLIC "${CMAKE_CURRENT_LIST_DIR}/Gamma" ) +endif() diff --git a/3rdparty/gist.cmake b/3rdparty/gist.cmake new file mode 100644 index 0000000000..7b6521deb3 --- /dev/null +++ b/3rdparty/gist.cmake @@ -0,0 +1,13 @@ +add_library(Gist STATIC + "${CMAKE_CURRENT_LIST_DIR}/Gist/src/CoreFrequencyDomainFeatures.cpp" + "${CMAKE_CURRENT_LIST_DIR}/Gist/src/CoreTimeDomainFeatures.cpp" + "${CMAKE_CURRENT_LIST_DIR}/Gist/src/Gist.cpp" + "${CMAKE_CURRENT_LIST_DIR}/Gist/src/MFCC.cpp" + "${CMAKE_CURRENT_LIST_DIR}/Gist/src/OnsetDetectionFunction.cpp" + "${CMAKE_CURRENT_LIST_DIR}/Gist/src/WindowFunctions.cpp" + "${CMAKE_CURRENT_LIST_DIR}/Gist/src/Yin.cpp" +) +target_compile_definitions(Gist PUBLIC USE_OSSIA_FFT=1) +target_include_directories(Gist SYSTEM PUBLIC "${CMAKE_CURRENT_LIST_DIR}/Gist/src") +target_link_libraries(Gist PUBLIC ossia) +set_target_properties(Gist PROPERTIES UNITY_BUILD 0) diff --git a/3rdparty/libossia b/3rdparty/libossia index 476e6e50d2..b335062f52 160000 --- a/3rdparty/libossia +++ b/3rdparty/libossia @@ -1 +1 @@ -Subproject commit 476e6e50d2ac11298b9ea2f6e4d9372973a52db0 +Subproject commit b335062f524775ad9a5ef094eec5bdcb8fd20e8d diff --git a/3rdparty/libpd.cmake b/3rdparty/libpd.cmake index 44bcb17989..48cff6d812 100644 --- a/3rdparty/libpd.cmake +++ b/3rdparty/libpd.cmake @@ -1,4 +1,5 @@ -if(OSSIA_USE_SYSTEM_LIBRARIES AND LINUX) +score_use_system(use_sys libpd) +if(use_sys AND LINUX) find_library(LIBPD_LIBRARY NAMES pd ) diff --git a/3rdparty/libsimpleio.cmake b/3rdparty/libsimpleio.cmake index 15b19b2156..365213cdf5 100644 --- a/3rdparty/libsimpleio.cmake +++ b/3rdparty/libsimpleio.cmake @@ -1,5 +1,16 @@ +score_use_system(use_sys simpleio) +if(use_sys) + find_library(SIMPLEIO_LIBRARY NAMES simpleio) + find_path(SIMPLEIO_INCLUDE_DIR libsimpleio/libgpio.h) + if(SIMPLEIO_LIBRARY AND SIMPLEIO_INCLUDE_DIR) + add_library(simpleio INTERFACE IMPORTED GLOBAL) + target_include_directories(simpleio SYSTEM INTERFACE "${SIMPLEIO_INCLUDE_DIR}") + target_link_libraries(simpleio INTERFACE "${SIMPLEIO_LIBRARY}") + endif() +endif() + find_path(LINUX_HEADERS_INCLUDE_DIR linux/gpio.h) -if(LINUX_HEADERS_INCLUDE_DIR AND UNIX AND NOT APPLE AND NOT EMSCRIPTEN) +if(NOT TARGET simpleio AND LINUX_HEADERS_INCLUDE_DIR AND UNIX AND NOT APPLE AND NOT EMSCRIPTEN) add_library(simpleio STATIC "${CMAKE_CURRENT_LIST_DIR}/libsimpleio/libsimpleio/cplusplus.h" "${CMAKE_CURRENT_LIST_DIR}/libsimpleio/libsimpleio/errmsg.c" diff --git a/3rdparty/llfio.cmake b/3rdparty/llfio.cmake new file mode 100644 index 0000000000..18d546a80c --- /dev/null +++ b/3rdparty/llfio.cmake @@ -0,0 +1,17 @@ +score_use_system(use_sys llfio) +set(LLFIO_INC "${CMAKE_CURRENT_LIST_DIR}/llfio/include") +if(use_sys) + find_path(LLFIO_INCLUDE_DIR llfio/llfio.hpp) + if(LLFIO_INCLUDE_DIR) + set(LLFIO_INC "${LLFIO_INCLUDE_DIR}") + endif() +endif() + +if(NOT TARGET llfio) + add_library(llfio INTERFACE IMPORTED GLOBAL) + target_include_directories(llfio SYSTEM INTERFACE "${LLFIO_INC}") + if(WIN32 AND NOT use_sys) + target_include_directories(llfio SYSTEM INTERFACE + "${CMAKE_CURRENT_LIST_DIR}/llfio/include/llfio/ntkernel-error-category/include") + endif() +endif() diff --git a/3rdparty/mikktspace.cmake b/3rdparty/mikktspace.cmake new file mode 100644 index 0000000000..145cd88510 --- /dev/null +++ b/3rdparty/mikktspace.cmake @@ -0,0 +1,16 @@ +score_use_system(use_sys mikktspace) +if(use_sys) + find_path(MIKKTSPACE_INCLUDE_DIR mikktspace.h) + find_library(MIKKTSPACE_LIBRARY NAMES mikktspace) + if(MIKKTSPACE_INCLUDE_DIR AND MIKKTSPACE_LIBRARY) + add_library(mikktspace INTERFACE IMPORTED GLOBAL) + target_include_directories(mikktspace SYSTEM INTERFACE "${MIKKTSPACE_INCLUDE_DIR}") + target_link_libraries(mikktspace INTERFACE "${MIKKTSPACE_LIBRARY}") + endif() +endif() + +if(NOT TARGET mikktspace) + add_library(mikktspace STATIC "${CMAKE_CURRENT_LIST_DIR}/mikktspace/mikktspace.c") + target_include_directories(mikktspace SYSTEM PUBLIC "${CMAKE_CURRENT_LIST_DIR}/mikktspace") + set_target_properties(mikktspace PROPERTIES UNITY_BUILD 0) +endif() diff --git a/3rdparty/mimalloc.cmake b/3rdparty/mimalloc.cmake index 627039c8e3..d30db73fa2 100644 --- a/3rdparty/mimalloc.cmake +++ b/3rdparty/mimalloc.cmake @@ -14,7 +14,8 @@ if("${CMAKE_CXX_FLAGS}" MATCHES ".*_GLIBCXX_ASSERTIONS.*") return() endif() -if(SCORE_USE_SYSTEM_LIBRARIES) +score_use_system(use_sys snmalloc) +if(use_sys) find_package(snmalloc GLOBAL CONFIG) else() block() diff --git a/3rdparty/miniply.cmake b/3rdparty/miniply.cmake new file mode 100644 index 0000000000..44f1bf39c9 --- /dev/null +++ b/3rdparty/miniply.cmake @@ -0,0 +1,16 @@ +score_use_system(use_sys miniply) +if(use_sys) + find_path(MINIPLY_INCLUDE_DIR miniply.h) + find_library(MINIPLY_LIBRARY NAMES miniply) + if(MINIPLY_INCLUDE_DIR AND MINIPLY_LIBRARY) + add_library(miniply INTERFACE IMPORTED GLOBAL) + target_include_directories(miniply SYSTEM INTERFACE "${MINIPLY_INCLUDE_DIR}") + target_link_libraries(miniply INTERFACE "${MINIPLY_LIBRARY}") + endif() +endif() + +if(NOT TARGET miniply) + add_library(miniply STATIC "${CMAKE_CURRENT_LIST_DIR}/miniply/miniply.cpp") + target_include_directories(miniply SYSTEM PUBLIC "${CMAKE_CURRENT_LIST_DIR}/miniply") + set_target_properties(miniply PROPERTIES UNITY_BUILD 0) +endif() diff --git a/3rdparty/opengametools.cmake b/3rdparty/opengametools.cmake new file mode 100644 index 0000000000..c9368b9bc4 --- /dev/null +++ b/3rdparty/opengametools.cmake @@ -0,0 +1,13 @@ +score_use_system(use_sys opengametools) +set(OPENGAMETOOLS_INC "${CMAKE_CURRENT_LIST_DIR}/opengametools/src") +if(use_sys) + find_path(OPENGAMETOOLS_INCLUDE_DIR ogt_vox.h) + if(OPENGAMETOOLS_INCLUDE_DIR) + set(OPENGAMETOOLS_INC "${OPENGAMETOOLS_INCLUDE_DIR}") + endif() +endif() + +if(NOT TARGET opengametools) + add_library(opengametools INTERFACE IMPORTED GLOBAL) + target_include_directories(opengametools SYSTEM INTERFACE "${OPENGAMETOOLS_INC}") +endif() diff --git a/3rdparty/outcome.cmake b/3rdparty/outcome.cmake new file mode 100644 index 0000000000..4bd973249d --- /dev/null +++ b/3rdparty/outcome.cmake @@ -0,0 +1,13 @@ +score_use_system(use_sys outcome) +set(OUTCOME_INC "${CMAKE_CURRENT_LIST_DIR}/outcome/include") +if(use_sys) + find_path(OUTCOME_INCLUDE_DIR outcome/outcome.hpp) + if(OUTCOME_INCLUDE_DIR) + set(OUTCOME_INC "${OUTCOME_INCLUDE_DIR}") + endif() +endif() + +if(NOT TARGET outcome) + add_library(outcome INTERFACE IMPORTED GLOBAL) + target_include_directories(outcome SYSTEM INTERFACE "${OUTCOME_INC}") +endif() diff --git a/3rdparty/phantomstyle.cmake b/3rdparty/phantomstyle.cmake new file mode 100644 index 0000000000..a73a2a0e75 --- /dev/null +++ b/3rdparty/phantomstyle.cmake @@ -0,0 +1,9 @@ +add_library(phantomstyle STATIC + "${CMAKE_CURRENT_LIST_DIR}/phantomstyle/src/phantom/phantomcolor.cpp" + "${CMAKE_CURRENT_LIST_DIR}/phantomstyle/src/phantom/phantomstyle.cpp" +) +target_include_directories(phantomstyle SYSTEM PUBLIC + "${CMAKE_CURRENT_LIST_DIR}/phantomstyle/src") +target_link_libraries(phantomstyle PUBLIC + ${QT_PREFIX}::Core ${QT_PREFIX}::Gui ${QT_PREFIX}::Widgets) +set_target_properties(phantomstyle PROPERTIES UNITY_BUILD 0) diff --git a/3rdparty/quickcpplib.cmake b/3rdparty/quickcpplib.cmake new file mode 100644 index 0000000000..7f5fe0a1de --- /dev/null +++ b/3rdparty/quickcpplib.cmake @@ -0,0 +1,13 @@ +score_use_system(use_sys quickcpplib) +set(QUICKCPPLIB_INC "${CMAKE_CURRENT_LIST_DIR}/quickcpplib/include") +if(use_sys) + find_path(QUICKCPPLIB_INCLUDE_DIR quickcpplib/config.hpp) + if(QUICKCPPLIB_INCLUDE_DIR) + set(QUICKCPPLIB_INC "${QUICKCPPLIB_INCLUDE_DIR}") + endif() +endif() + +if(NOT TARGET quickcpplib) + add_library(quickcpplib INTERFACE IMPORTED GLOBAL) + target_include_directories(quickcpplib SYSTEM INTERFACE "${QUICKCPPLIB_INC}") +endif() diff --git a/3rdparty/r8brain.cmake b/3rdparty/r8brain.cmake index 8240e69280..af1c91eff4 100644 --- a/3rdparty/r8brain.cmake +++ b/3rdparty/r8brain.cmake @@ -1,3 +1,18 @@ +score_use_system(use_sys r8brain) +if(use_sys) + find_package(r8brain GLOBAL QUIET) + if(NOT TARGET r8brain) + find_library(R8BRAIN_LIBRARY NAMES r8brain) + find_path(R8BRAIN_INCLUDE_DIR CDSPResampler.h PATH_SUFFIXES r8brain) + if(R8BRAIN_LIBRARY AND R8BRAIN_INCLUDE_DIR) + add_library(r8brain INTERFACE IMPORTED GLOBAL) + target_include_directories(r8brain SYSTEM INTERFACE "${R8BRAIN_INCLUDE_DIR}") + target_link_libraries(r8brain INTERFACE "${R8BRAIN_LIBRARY}") + endif() + endif() +endif() + +if(NOT TARGET r8brain) add_library(r8brain STATIC "${CMAKE_CURRENT_LIST_DIR}/libossia/3rdparty/r8brain-free-src/r8bbase.cpp" ) @@ -13,3 +28,4 @@ target_include_directories( PUBLIC "${CMAKE_CURRENT_LIST_DIR}/libossia/3rdparty/r8brain-free-src/" ) +endif() diff --git a/3rdparty/sh4lt.cmake b/3rdparty/sh4lt.cmake index 54b5008149..202d600081 100644 --- a/3rdparty/sh4lt.cmake +++ b/3rdparty/sh4lt.cmake @@ -6,9 +6,12 @@ if(EMSCRIPTEN OR BSD) return() endif() -if(SCORE_USE_SYSTEM_LIBRARIES) +score_use_system(use_sys sh4lt) +if(use_sys) find_package(sh4lt GLOBAL) -else() +endif() + +if(NOT TARGET sh4lt) add_library(sh4lt STATIC "${CMAKE_CURRENT_LIST_DIR}/sh4lt/sh4lt/c/cfollower.cpp" "${CMAKE_CURRENT_LIST_DIR}/sh4lt/sh4lt/c/clogger.cpp" diff --git a/3rdparty/shmdata.cmake b/3rdparty/shmdata.cmake index 3dc855b549..1858639ef4 100644 --- a/3rdparty/shmdata.cmake +++ b/3rdparty/shmdata.cmake @@ -6,9 +6,12 @@ if(EMSCRIPTEN OR BSD) return() endif() -if(SCORE_USE_SYSTEM_LIBRARIES) +score_use_system(use_sys shmdata) +if(use_sys) find_package(shmdata GLOBAL) -else() +endif() + +if(NOT TARGET shmdata) add_library(shmdata STATIC "${CMAKE_CURRENT_LIST_DIR}/shmdata/shmdata/cfollower.cpp" "${CMAKE_CURRENT_LIST_DIR}/shmdata/shmdata/clogger.cpp" diff --git a/3rdparty/snappy.cmake b/3rdparty/snappy.cmake index 8d8db0f954..162938f440 100644 --- a/3rdparty/snappy.cmake +++ b/3rdparty/snappy.cmake @@ -1,6 +1,9 @@ -if(SCORE_USE_SYSTEM_LIBRARIES) +score_use_system(use_sys Snappy) +if(use_sys) find_package(Snappy GLOBAL CONFIG) -else() +endif() + +if(NOT TARGET Snappy::snappy AND NOT TARGET snappy) set(SNAPPY_BUILD_TESTS OFF) set(SNAPPY_BUILD_BENCHMARKS OFF) set(SNAPPY_INSTALL OFF) diff --git a/3rdparty/sndfile.cmake b/3rdparty/sndfile.cmake index 1d02895c27..f10dc7ed4c 100644 --- a/3rdparty/sndfile.cmake +++ b/3rdparty/sndfile.cmake @@ -2,7 +2,8 @@ if(EMSCRIPTEN) return() endif() -if(SCORE_USE_SYSTEM_LIBRARIES) +score_use_system(use_sys SndFile) +if(use_sys) find_package(SndFile GLOBAL CONFIG) if(NOT TARGET SndFile::sndfile) if(NOT TARGET sndfile) diff --git a/3rdparty/ssynth.cmake b/3rdparty/ssynth.cmake new file mode 100644 index 0000000000..6aaa17d106 --- /dev/null +++ b/3rdparty/ssynth.cmake @@ -0,0 +1,29 @@ +add_library( + ssynth STATIC + "${CMAKE_CURRENT_LIST_DIR}/libssynth/src/ssynth/Parser/EisenParser.cpp" + "${CMAKE_CURRENT_LIST_DIR}/libssynth/src/ssynth/Parser/Preprocessor.cpp" + "${CMAKE_CURRENT_LIST_DIR}/libssynth/src/ssynth/Parser/Tokenizer.cpp" + "${CMAKE_CURRENT_LIST_DIR}/libssynth/src/ssynth/Model/Action.cpp" + "${CMAKE_CURRENT_LIST_DIR}/libssynth/src/ssynth/Model/AmbiguousRule.cpp" + "${CMAKE_CURRENT_LIST_DIR}/libssynth/src/ssynth/Model/Builder.cpp" + "${CMAKE_CURRENT_LIST_DIR}/libssynth/src/ssynth/Model/CustomRule.cpp" + "${CMAKE_CURRENT_LIST_DIR}/libssynth/src/ssynth/Model/PrimitiveRule.cpp" + "${CMAKE_CURRENT_LIST_DIR}/libssynth/src/ssynth/Model/RuleSet.cpp" + "${CMAKE_CURRENT_LIST_DIR}/libssynth/src/ssynth/Model/State.cpp" + "${CMAKE_CURRENT_LIST_DIR}/libssynth/src/ssynth/Model/Transformation.cpp" + "${CMAKE_CURRENT_LIST_DIR}/libssynth/src/ssynth/Model/Rendering/TemplateRenderer.cpp" + "${CMAKE_CURRENT_LIST_DIR}/libssynth/src/ssynth/Model/Rendering/ObjRenderer.cpp" + "${CMAKE_CURRENT_LIST_DIR}/libssynth/src/ssynth/ColorPool.cpp" + "${CMAKE_CURRENT_LIST_DIR}/libssynth/src/ssynth/ColorUtils.cpp" + "${CMAKE_CURRENT_LIST_DIR}/libssynth/src/ssynth/Logging.cpp" + "${CMAKE_CURRENT_LIST_DIR}/libssynth/src/ssynth/MiniParser.cpp" + "${CMAKE_CURRENT_LIST_DIR}/libssynth/src/ssynth/RandomStreams.cpp") +target_include_directories(ssynth SYSTEM + PUBLIC "${CMAKE_CURRENT_LIST_DIR}/libssynth/src") + +target_link_libraries(ssynth PRIVATE "${QT_PREFIX}::Core" "${QT_PREFIX}::Gui" + "${QT_PREFIX}::Xml" score_lib_base) + +if(NOT MSVC) + target_compile_options(ssynth PRIVATE -w) +endif() diff --git a/3rdparty/suil.cmake b/3rdparty/suil.cmake index b6e85b6480..07daeef47e 100644 --- a/3rdparty/suil.cmake +++ b/3rdparty/suil.cmake @@ -1,7 +1,3 @@ -if(OSSIA_USE_SYSTEM_LIBRARIES) - return() -endif() - if(NOT LV2_PATH) return() endif() diff --git a/3rdparty/vcglib.cmake b/3rdparty/vcglib.cmake new file mode 100644 index 0000000000..cad449fef5 --- /dev/null +++ b/3rdparty/vcglib.cmake @@ -0,0 +1,13 @@ +score_use_system(use_sys vcglib) +set(VCGLIB_INC "${CMAKE_CURRENT_LIST_DIR}/vcglib") +if(use_sys) + find_path(VCGLIB_INCLUDE_DIR vcg/complex/complex.h) + if(VCGLIB_INCLUDE_DIR) + set(VCGLIB_INC "${VCGLIB_INCLUDE_DIR}") + endif() +endif() + +if(NOT TARGET vcglib) + add_library(vcglib INTERFACE IMPORTED GLOBAL) + target_include_directories(vcglib SYSTEM INTERFACE "${VCGLIB_INC}") +endif() diff --git a/3rdparty/vst3.cmake b/3rdparty/vst3.cmake index fe5963e9fb..aabcf94449 100644 --- a/3rdparty/vst3.cmake +++ b/3rdparty/vst3.cmake @@ -1,4 +1,5 @@ -if(OSSIA_USE_SYSTEM_LIBRARIES AND LINUX) +score_use_system(use_sys vst3) +if(use_sys AND LINUX) find_path(VST3_SDK_MODULE_DIR public.sdk/source/vst/hosting/module_linux.cpp PATH_SUFFIXES vst3sdk diff --git a/3rdparty/xtensor.cmake b/3rdparty/xtensor.cmake index 2f8788c12e..612705a587 100644 --- a/3rdparty/xtensor.cmake +++ b/3rdparty/xtensor.cmake @@ -1,4 +1,5 @@ -if(SCORE_USE_SYSTEM_LIBRARIES) +score_use_system(use_sys xtensor) +if(use_sys) find_package(xtl 0.8.0 GLOBAL CONFIG) find_package(xsimd 13.2.0 GLOBAL CONFIG) find_package(xtensor 0.27.0 GLOBAL CONFIG) diff --git a/cmake/ScoreConfiguration.cmake b/cmake/ScoreConfiguration.cmake index 2ca900f383..2831d865eb 100644 --- a/cmake/ScoreConfiguration.cmake +++ b/cmake/ScoreConfiguration.cmake @@ -26,6 +26,21 @@ option(SCORE_TESTBED "Enable the testbed. See Tests/testbed/README" OFF) option(SCORE_PLAYER "Build standalone player" OFF) option(SCORE_FHS_BUILD "For installing in Linux distros /usr hierarchy" OFF) option(SCORE_USE_SYSTEM_LIBRARIES "Try to use system libraries as far as possible" OFF) +option(OSSIA_USE_SYSTEM_LIBRARIES "Try to use system libraries as far as possible" OFF) +if(SCORE_USE_SYSTEM_LIBRARIES) + set(OSSIA_USE_SYSTEM_LIBRARIES ON CACHE BOOL "" FORCE) +endif() + +function(score_use_system out pkg) + if(NOT DEFINED OSSIA_USE_SYSTEM_${pkg}) + set(OSSIA_USE_SYSTEM_${pkg} "" CACHE STRING "") + endif() + if(NOT "${OSSIA_USE_SYSTEM_${pkg}}" STREQUAL "") + set(${out} "${OSSIA_USE_SYSTEM_${pkg}}" PARENT_SCOPE) + else() + set(${out} "${OSSIA_USE_SYSTEM_LIBRARIES}" PARENT_SCOPE) + endif() +endfunction() option(DEFINE_SCORE_SCENARIO_DEBUG_RECTS "Enable to have debug rects around elements of a scenario" OFF) option(SCORE_COVERAGE "Enable coverage" OFF) diff --git a/cmake/modules/FindSuil.cmake b/cmake/modules/FindSuil.cmake index 9e4e49a241..0a7cef8c59 100644 --- a/cmake/modules/FindSuil.cmake +++ b/cmake/modules/FindSuil.cmake @@ -11,7 +11,6 @@ find_path( suil-0 ) -set(Suil_NAMES suil suil-0) find_library(Suil_LIBRARY NAMES suil @@ -23,16 +22,19 @@ find_library(Suil_LIBRARY if(Suil_INCLUDE_DIR AND Suil_LIBRARY) set(Suil_FOUND TRUE) endif() -if(UNIX AND NOT APPLE) +if(UNIX AND NOT APPLE AND Suil_FOUND) get_filename_component(Suil_FOLDER "${Suil_LIBRARY}" DIRECTORY) if(NOT ((EXISTS "${Suil_FOLDER}/libsuil_x11_in_qt6.so") OR (EXISTS "${Suil_FOLDER}/suil-0/libsuil_x11_in_qt6.so"))) unset(Suil_INCLUDE_DIR) unset(Suil_LIBRARY) unset(Suil_FOUND) - include("${3RDPARTY_FOLDER}/suil.cmake") endif() endif() +if(NOT Suil_FOUND) + include("${3RDPARTY_FOLDER}/suil.cmake") +endif() + include(FindPackageHandleStandardArgs) find_package_handle_standard_args( Suil DEFAULT_MSG diff --git a/src/app/CMakeLists.txt b/src/app/CMakeLists.txt index c7d4466637..284958cb25 100755 --- a/src/app/CMakeLists.txt +++ b/src/app/CMakeLists.txt @@ -59,9 +59,6 @@ set(SRCS "${CMAKE_CURRENT_SOURCE_DIR}/Application.hpp" "${CMAKE_CURRENT_SOURCE_DIR}/Application.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/main.cpp" - - "${3RDPARTY_FOLDER}/phantomstyle/src/phantom/phantomcolor.cpp" - "${3RDPARTY_FOLDER}/phantomstyle/src/phantom/phantomstyle.cpp" ) if(EMSCRIPTEN) @@ -75,11 +72,10 @@ endif() ossia_set_visibility(${APPNAME}) -target_include_directories(${APPNAME} PRIVATE "${3RDPARTY_FOLDER}/phantomstyle/src") - target_link_libraries(${APPNAME} PUBLIC score_lib_base + phantomstyle ${QT_PREFIX}::CorePrivate ) diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt index 4179b1a691..560dbb557e 100755 --- a/src/lib/CMakeLists.txt +++ b/src/lib/CMakeLists.txt @@ -609,12 +609,6 @@ endif() target_include_directories(score_lib_base SYSTEM PUBLIC "${3RDPARTY_FOLDER}") target_include_directories(score_lib_base SYSTEM PUBLIC "${3RDPARTY_FOLDER}/zipdownloader/src") target_include_directories(score_lib_base SYSTEM PUBLIC "${OSSIA_3RDPARTY_FOLDER}/rnd/include") -target_include_directories(score_lib_base SYSTEM PRIVATE "${3RDPARTY_FOLDER}/quickcpplib/include") -target_include_directories(score_lib_base SYSTEM PRIVATE "${3RDPARTY_FOLDER}/outcome/include") -target_include_directories(score_lib_base SYSTEM PRIVATE "${3RDPARTY_FOLDER}/llfio/include") -if(WIN32) - target_include_directories(score_lib_base SYSTEM PRIVATE "${3RDPARTY_FOLDER}/llfio/include/llfio/ntkernel-error-category/include") -endif() target_link_libraries(score_lib_base PUBLIC @@ -627,6 +621,10 @@ target_link_libraries(score_lib_base magic_enum::magic_enum Eigen3::Eigen xtensor + PRIVATE + outcome + llfio + quickcpplib ) if(TARGET ${QT_PREFIX}::Svg) diff --git a/src/plugins/score-plugin-analysis/CMakeLists.txt b/src/plugins/score-plugin-analysis/CMakeLists.txt index 84b4840c62..c1097a2a4c 100644 --- a/src/plugins/score-plugin-analysis/CMakeLists.txt +++ b/src/plugins/score-plugin-analysis/CMakeLists.txt @@ -31,26 +31,11 @@ add_library( score_plugin_analysis.hpp score_plugin_analysis.cpp - - "${3RDPARTY_FOLDER}/Gist/src/CoreFrequencyDomainFeatures.cpp" - "${3RDPARTY_FOLDER}/Gist/src/CoreFrequencyDomainFeatures.h" - "${3RDPARTY_FOLDER}/Gist/src/CoreTimeDomainFeatures.cpp" - "${3RDPARTY_FOLDER}/Gist/src/CoreTimeDomainFeatures.h" - "${3RDPARTY_FOLDER}/Gist/src/Gist.cpp" - "${3RDPARTY_FOLDER}/Gist/src/Gist.h" - "${3RDPARTY_FOLDER}/Gist/src/MFCC.cpp" - "${3RDPARTY_FOLDER}/Gist/src/MFCC.h" - "${3RDPARTY_FOLDER}/Gist/src/OnsetDetectionFunction.cpp" - "${3RDPARTY_FOLDER}/Gist/src/OnsetDetectionFunction.h" - "${3RDPARTY_FOLDER}/Gist/src/WindowFunctions.cpp" - "${3RDPARTY_FOLDER}/Gist/src/WindowFunctions.h" - "${3RDPARTY_FOLDER}/Gist/src/Yin.cpp" - "${3RDPARTY_FOLDER}/Gist/src/Yin.h" ) -target_compile_definitions(score_plugin_analysis PRIVATE USE_OSSIA_FFT=1) -target_include_directories(score_plugin_analysis PRIVATE "${3RDPARTY_FOLDER}/Gist/src") -target_link_libraries(score_plugin_analysis PUBLIC score_plugin_engine score_plugin_avnd) +include("${3RDPARTY_FOLDER}/gist.cmake") + +target_link_libraries(score_plugin_analysis PUBLIC score_plugin_engine score_plugin_avnd Gist) if(OSSIA_ENABLE_KFR AND TARGET kfr) link_whole_archive(score_plugin_analysis PRIVATE kfr) link_whole_archive(score_plugin_analysis PRIVATE kfr_dsp) diff --git a/src/plugins/score-plugin-clap/CMakeLists.txt b/src/plugins/score-plugin-clap/CMakeLists.txt index f7901c86f9..9ef6d33096 100644 --- a/src/plugins/score-plugin-clap/CMakeLists.txt +++ b/src/plugins/score-plugin-clap/CMakeLists.txt @@ -52,10 +52,16 @@ target_link_libraries(${PROJECT_NAME} PUBLIC score_plugin_media ) -target_include_directories(${PROJECT_NAME} PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_SOURCE_DIR}/3rdparty/clap/include -) +score_use_system(use_sys clap) +if(use_sys) + find_package(clap GLOBAL QUIET) +endif() +target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) +if(TARGET clap::clap) + target_link_libraries(${PROJECT_NAME} PRIVATE clap::clap) +else() + target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/3rdparty/clap/include) +endif() # Platform-specific libraries for dynamic loading if(WIN32) diff --git a/src/plugins/score-plugin-faust/CMakeLists.txt b/src/plugins/score-plugin-faust/CMakeLists.txt index 9a25355f02..9a8fbb7d54 100644 --- a/src/plugins/score-plugin-faust/CMakeLists.txt +++ b/src/plugins/score-plugin-faust/CMakeLists.txt @@ -63,7 +63,8 @@ target_include_directories(${PROJECT_NAME} PRIVATE ${FAUST_INCLUDE_DIR}) setup_score_plugin(${PROJECT_NAME}) -if(NOT SCORE_USE_SYSTEM_LIBRARIES) +score_use_system(use_sys Faust) +if(NOT use_sys) message("Downloading Faust libs...") ExternalProject_Add( diff --git a/src/plugins/score-plugin-threedim/CMakeLists.txt b/src/plugins/score-plugin-threedim/CMakeLists.txt index cf29d7946f..a620efa07b 100644 --- a/src/plugins/score-plugin-threedim/CMakeLists.txt +++ b/src/plugins/score-plugin-threedim/CMakeLists.txt @@ -14,36 +14,11 @@ endif() find_package(${QT_VERSION} REQUIRED COMPONENTS Xml) -# libssynth -add_library( - ssynth STATIC - "${3RDPARTY_FOLDER}/libssynth/src/ssynth/Parser/EisenParser.cpp" - "${3RDPARTY_FOLDER}/libssynth/src/ssynth/Parser/Preprocessor.cpp" - "${3RDPARTY_FOLDER}/libssynth/src/ssynth/Parser/Tokenizer.cpp" - "${3RDPARTY_FOLDER}/libssynth/src/ssynth/Model/Action.cpp" - "${3RDPARTY_FOLDER}/libssynth/src/ssynth/Model/AmbiguousRule.cpp" - "${3RDPARTY_FOLDER}/libssynth/src/ssynth/Model/Builder.cpp" - "${3RDPARTY_FOLDER}/libssynth/src/ssynth/Model/CustomRule.cpp" - "${3RDPARTY_FOLDER}/libssynth/src/ssynth/Model/PrimitiveRule.cpp" - "${3RDPARTY_FOLDER}/libssynth/src/ssynth/Model/RuleSet.cpp" - "${3RDPARTY_FOLDER}/libssynth/src/ssynth/Model/State.cpp" - "${3RDPARTY_FOLDER}/libssynth/src/ssynth/Model/Transformation.cpp" - "${3RDPARTY_FOLDER}/libssynth/src/ssynth/Model/Rendering/TemplateRenderer.cpp" - "${3RDPARTY_FOLDER}/libssynth/src/ssynth/Model/Rendering/ObjRenderer.cpp" - "${3RDPARTY_FOLDER}/libssynth/src/ssynth/ColorPool.cpp" - "${3RDPARTY_FOLDER}/libssynth/src/ssynth/ColorUtils.cpp" - "${3RDPARTY_FOLDER}/libssynth/src/ssynth/Logging.cpp" - "${3RDPARTY_FOLDER}/libssynth/src/ssynth/MiniParser.cpp" - "${3RDPARTY_FOLDER}/libssynth/src/ssynth/RandomStreams.cpp") -target_include_directories(ssynth SYSTEM - PRIVATE "${3RDPARTY_FOLDER}/libssynth/src") - -target_link_libraries(ssynth PRIVATE "${QT_PREFIX}::Core" "${QT_PREFIX}::Gui" - "${QT_PREFIX}::Xml" score_lib_base) - -if(NOT MSVC) - target_compile_options(ssynth PRIVATE -w) -endif() +include("${3RDPARTY_FOLDER}/ssynth.cmake") +include("${3RDPARTY_FOLDER}/miniply.cmake") +include("${3RDPARTY_FOLDER}/mikktspace.cmake") +include("${3RDPARTY_FOLDER}/vcglib.cmake") +include("${3RDPARTY_FOLDER}/opengametools.cmake") # threedim addon add_library( @@ -115,8 +90,6 @@ add_library( Threedim/Splat/GaussianSplatNode.hpp Threedim/Splat/GaussianSplatNode.cpp - "${3RDPARTY_FOLDER}/miniply/miniply.cpp" - "${3RDPARTY_FOLDER}/mikktspace/mikktspace.c" score_plugin_threedim.hpp score_plugin_threedim.cpp) @@ -125,15 +98,7 @@ setup_score_plugin(score_plugin_threedim) score_generate_command_list_file(score_plugin_threedim "Threedim/RenderPipeline/Process.hpp") -target_include_directories( - score_plugin_threedim SYSTEM - PRIVATE - "${3RDPARTY_FOLDER}/libssynth/src" - "${3RDPARTY_FOLDER}/vcglib" - "${3RDPARTY_FOLDER}/miniply" - "${3RDPARTY_FOLDER}/mikktspace" - "${3RDPARTY_FOLDER}/opengametools/src") - target_link_libraries( score_plugin_threedim PRIVATE score_plugin_engine score_plugin_avnd - score_plugin_gfx fmt::fmt ssynth Eigen3::Eigen) + score_plugin_gfx fmt::fmt ssynth Eigen3::Eigen + miniply mikktspace vcglib opengametools)