From ac7ca10061a3fbe165bac681381de7cff038d735 Mon Sep 17 00:00:00 2001 From: Eidolon Date: Wed, 4 Jan 2023 17:28:11 -0600 Subject: [PATCH] cmake: Separate cpm xmp-lite setup --- thirdparty/CMakeLists.txt | 60 +---------------------------------- thirdparty/cpm-xmp-lite.cmake | 60 +++++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+), 59 deletions(-) create mode 100644 thirdparty/cpm-xmp-lite.cmake diff --git a/thirdparty/CMakeLists.txt b/thirdparty/CMakeLists.txt index 850e4580c..18397528c 100644 --- a/thirdparty/CMakeLists.txt +++ b/thirdparty/CMakeLists.txt @@ -288,65 +288,7 @@ if(DiscordRPC_ADDED) endif() endif() -CPMAddPackage( - NAME xmp-lite - VERSION 4.5.0 - URL "https://github.com/libxmp/libxmp/releases/download/libxmp-4.5.0/libxmp-lite-4.5.0.tar.gz" - EXCLUDE_FROM_ALL ON - DOWNLOAD_ONLY ON -) -if(xmp-lite_ADDED) - set(xmp_sources - virtual.c - format.c - period.c - player.c - read_event.c - misc.c - dataio.c - lfo.c - scan.c - control.c - filter.c - effects.c - mixer.c - mix_all.c - load_helpers.c - load.c - hio.c - smix.c - memio.c - win32.c - - loaders/common.c - loaders/itsex.c - loaders/sample.c - loaders/xm_load.c - loaders/mod_load.c - loaders/s3m_load.c - loaders/it_load.c - ) - list(TRANSFORM xmp_sources PREPEND "${xmp-lite_SOURCE_DIR}/src/") - - add_library(xmp-lite "${SRB2_INTERNAL_LIBRARY_TYPE}" ${xmp_sources}) - - target_compile_definitions(xmp-lite PRIVATE -D_REENTRANT -DLIBXMP_CORE_PLAYER -DLIBXMP_NO_PROWIZARD -DLIBXMP_NO_DEPACKERS) - if("${SRB2_INTERNAL_LIBRARY_TYPE}" STREQUAL "STATIC") - if(WIN32) - # BUILDING_STATIC has to be public to work around a bug in xmp.h - # which adds __declspec(dllimport) even when statically linking - target_compile_definitions(xmp-lite PUBLIC -DBUILDING_STATIC) - else() - target_compile_definitions(xmp-lite PRIVATE -DBUILDING_STATIC) - endif() - else() - target_compile_definitions(xmp-lite PRIVATE -DBUILDING_DLL) - endif() - target_include_directories(xmp-lite PRIVATE "${xmp-lite_SOURCE_DIR}/src") - target_include_directories(xmp-lite PUBLIC "${xmp-lite_SOURCE_DIR}/include/libxmp-lite") - - add_library(xmp-lite::xmp-lite ALIAS xmp-lite) -endif() +include("cpm-xmp-lite.cmake") add_subdirectory(tcbrindle_span) add_subdirectory(stb_vorbis) diff --git a/thirdparty/cpm-xmp-lite.cmake b/thirdparty/cpm-xmp-lite.cmake new file mode 100644 index 000000000..21a721e0a --- /dev/null +++ b/thirdparty/cpm-xmp-lite.cmake @@ -0,0 +1,60 @@ +CPMAddPackage( + NAME xmp-lite + VERSION 4.5.0 + URL "https://github.com/libxmp/libxmp/releases/download/libxmp-4.5.0/libxmp-lite-4.5.0.tar.gz" + EXCLUDE_FROM_ALL ON + DOWNLOAD_ONLY ON +) + +if(xmp-lite_ADDED) + set(xmp_sources + virtual.c + format.c + period.c + player.c + read_event.c + misc.c + dataio.c + lfo.c + scan.c + control.c + filter.c + effects.c + mixer.c + mix_all.c + load_helpers.c + load.c + hio.c + smix.c + memio.c + win32.c + + loaders/common.c + loaders/itsex.c + loaders/sample.c + loaders/xm_load.c + loaders/mod_load.c + loaders/s3m_load.c + loaders/it_load.c + ) + list(TRANSFORM xmp_sources PREPEND "${xmp-lite_SOURCE_DIR}/src/") + + add_library(xmp-lite "${SRB2_INTERNAL_LIBRARY_TYPE}" ${xmp_sources}) + + target_compile_definitions(xmp-lite PRIVATE -D_REENTRANT -DLIBXMP_CORE_PLAYER -DLIBXMP_NO_PROWIZARD -DLIBXMP_NO_DEPACKERS) + if("${SRB2_INTERNAL_LIBRARY_TYPE}" STREQUAL "STATIC") + if(WIN32) + # BUILDING_STATIC has to be public to work around a bug in xmp.h + # which adds __declspec(dllimport) even when statically linking + target_compile_definitions(xmp-lite PUBLIC -DBUILDING_STATIC) + else() + target_compile_definitions(xmp-lite PRIVATE -DBUILDING_STATIC) + endif() + else() + target_compile_definitions(xmp-lite PRIVATE -DBUILDING_DLL) + endif() + target_include_directories(xmp-lite PRIVATE "${xmp-lite_SOURCE_DIR}/src") + target_include_directories(xmp-lite PUBLIC "${xmp-lite_SOURCE_DIR}/include/libxmp-lite") + + add_library(xmp-lite::xmp-lite ALIAS xmp-lite) +endif()