diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index bc7ee527e..e0a5bcd70 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -229,7 +229,7 @@ target_link_libraries(SRB2SDL2 PRIVATE glad::glad) target_link_libraries(SRB2SDL2 PRIVATE fmt) target_link_libraries(SRB2SDL2 PRIVATE imgui::imgui) -target_link_libraries(SRB2SDL2 PRIVATE acsvm::acsvm) +target_link_libraries(SRB2SDL2 PRIVATE acsvm) set(SRB2_HAVE_THREADS ON) target_compile_definitions(SRB2SDL2 PRIVATE -DHAVE_THREADS) diff --git a/thirdparty/CMakeLists.txt b/thirdparty/CMakeLists.txt index 3a37bae85..479fd26a9 100644 --- a/thirdparty/CMakeLists.txt +++ b/thirdparty/CMakeLists.txt @@ -22,86 +22,7 @@ include("cpm-discordrpc.cmake") include("cpm-xmp-lite.cmake") include("cpm-fmt.cmake") include("cpm-imgui.cmake") - -if(NOT "${SRB2_CONFIG_SYSTEM_LIBRARIES}") - CPMAddPackage( - NAME acsvm - VERSION 0 - URL "https://github.com/DavidPH/ACSVM/archive/7011af443dd03e8592d7810b0b91f46c49bdde59.zip" - EXCLUDE_FROM_ALL ON - DOWNLOAD_ONLY YES - ) - - if(acsvm_ADDED) - # Sal -- While ACSVM can be built as a shared library, a lot of its options are - # tied to directories existing, because the project suggests just copying it into - # your own project directly. I don't want us to do that, so I made our own target. - set( - acsvm_SOURCES - - ACSVM/Action.cpp - ACSVM/Action.hpp - ACSVM/Array.cpp - ACSVM/Array.hpp - ACSVM/BinaryIO.cpp - ACSVM/BinaryIO.hpp - ACSVM/CallFunc.cpp - ACSVM/CallFunc.hpp - ACSVM/Code.hpp - ACSVM/CodeData.cpp - ACSVM/CodeData.hpp - ACSVM/CodeList.hpp - ACSVM/Environment.cpp - ACSVM/Environment.hpp - ACSVM/Error.cpp - ACSVM/Error.hpp - ACSVM/Function.cpp - ACSVM/Function.hpp - ACSVM/HashMap.hpp - ACSVM/HashMapFixed.hpp - ACSVM/ID.hpp - ACSVM/Init.cpp - ACSVM/Init.hpp - ACSVM/Jump.cpp - ACSVM/Jump.hpp - ACSVM/Module.cpp - ACSVM/Module.hpp - ACSVM/ModuleACS0.cpp - ACSVM/ModuleACSE.cpp - ACSVM/PrintBuf.cpp - ACSVM/PrintBuf.hpp - ACSVM/Scope.cpp - ACSVM/Scope.hpp - ACSVM/Script.cpp - ACSVM/Script.hpp - ACSVM/Serial.cpp - ACSVM/Serial.hpp - ACSVM/Stack.hpp - ACSVM/Store.hpp - ACSVM/String.cpp - ACSVM/String.hpp - ACSVM/Thread.cpp - ACSVM/Thread.hpp - ACSVM/ThreadExec.cpp - ACSVM/Tracer.cpp - ACSVM/Tracer.hpp - ACSVM/Types.hpp - ACSVM/Vector.hpp - - Util/Floats.cpp - Util/Floats.hpp - ) - list(TRANSFORM acsvm_SOURCES PREPEND "${acsvm_SOURCE_DIR}/") - add_library(acsvm "${SRB2_INTERNAL_LIBRARY_TYPE}" ${acsvm_SOURCES}) - - target_compile_features(acsvm PRIVATE cxx_std_11) - - target_include_directories(acsvm INTERFACE "${acsvm_SOURCE_DIR}") - - target_link_libraries(acsvm PRIVATE acsvm::acsvm) - add_library(acsvm::acsvm ALIAS acsvm) - endif() -endif() +include("cpm-acsvm.cmake") add_subdirectory(tcbrindle_span) add_subdirectory(stb_vorbis) diff --git a/thirdparty/cpm-acsvm.cmake b/thirdparty/cpm-acsvm.cmake new file mode 100644 index 000000000..2318050bb --- /dev/null +++ b/thirdparty/cpm-acsvm.cmake @@ -0,0 +1,77 @@ +CPMAddPackage( + NAME acsvm + VERSION 0 + URL "https://github.com/DavidPH/ACSVM/archive/7011af443dd03e8592d7810b0b91f46c49bdde59.zip" + EXCLUDE_FROM_ALL ON + DOWNLOAD_ONLY YES +) + +if(acsvm_ADDED) + # Sal -- While ACSVM can be built as a shared library, a lot of its options are + # tied to directories existing, because the project suggests just copying it into + # your own project directly. I don't want us to do that, so I made our own target. + set( + acsvm_SOURCES + + ACSVM/Action.cpp + ACSVM/Action.hpp + ACSVM/Array.cpp + ACSVM/Array.hpp + ACSVM/BinaryIO.cpp + ACSVM/BinaryIO.hpp + ACSVM/CallFunc.cpp + ACSVM/CallFunc.hpp + ACSVM/Code.hpp + ACSVM/CodeData.cpp + ACSVM/CodeData.hpp + ACSVM/CodeList.hpp + ACSVM/Environment.cpp + ACSVM/Environment.hpp + ACSVM/Error.cpp + ACSVM/Error.hpp + ACSVM/Function.cpp + ACSVM/Function.hpp + ACSVM/HashMap.hpp + ACSVM/HashMapFixed.hpp + ACSVM/ID.hpp + ACSVM/Init.cpp + ACSVM/Init.hpp + ACSVM/Jump.cpp + ACSVM/Jump.hpp + ACSVM/Module.cpp + ACSVM/Module.hpp + ACSVM/ModuleACS0.cpp + ACSVM/ModuleACSE.cpp + ACSVM/PrintBuf.cpp + ACSVM/PrintBuf.hpp + ACSVM/Scope.cpp + ACSVM/Scope.hpp + ACSVM/Script.cpp + ACSVM/Script.hpp + ACSVM/Serial.cpp + ACSVM/Serial.hpp + ACSVM/Stack.hpp + ACSVM/Store.hpp + ACSVM/String.cpp + ACSVM/String.hpp + ACSVM/Thread.cpp + ACSVM/Thread.hpp + ACSVM/ThreadExec.cpp + ACSVM/Tracer.cpp + ACSVM/Tracer.hpp + ACSVM/Types.hpp + ACSVM/Vector.hpp + + Util/Floats.cpp + Util/Floats.hpp + ) + list(TRANSFORM acsvm_SOURCES PREPEND "${acsvm_SOURCE_DIR}/") + add_library(acsvm "${SRB2_INTERNAL_LIBRARY_TYPE}" ${acsvm_SOURCES}) + + target_compile_features(acsvm PRIVATE cxx_std_11) + + target_include_directories(acsvm INTERFACE "${acsvm_SOURCE_DIR}") + + target_link_libraries(acsvm PRIVATE acsvm::acsvm) + add_library(acsvm::acsvm ALIAS acsvm) +endif()