cmake: move ACSVM fetch to cpm-acsvm.cmake

Remove SRB2_CONFIG_SYSTEM_LIBRARIES condition. This is
because I am lazy and don't want to write
a FindACSVM.cmake. I also don't think it will be common
for it to be installed at the system level.
This commit is contained in:
James R 2023-01-26 23:33:00 -08:00
parent f57dd43e36
commit 7092f1126e
3 changed files with 79 additions and 81 deletions

View file

@ -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)

View file

@ -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)

77
thirdparty/cpm-acsvm.cmake vendored Normal file
View file

@ -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()