Skip to content

Commit

Permalink
Merge pull request #221 from DarkWanderer/feature/rust/virtual-file-s…
Browse files Browse the repository at this point in the history
…ystem

Hooking Rust project into CMake - first cut
  • Loading branch information
X39 authored Sep 27, 2023
2 parents 83956ad + 87054fa commit 8cd2051
Showing 1 changed file with 31 additions and 1 deletion.
32 changes: 31 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,36 @@ get_git_head_revision(GIT_REFSPEC GIT_SHA1)
configure_file("${PROJECT_SOURCE_DIR}/cmake/git_sha1.cpp.in" "${CMAKE_CURRENT_BINARY_DIR}/git_sha1.cpp" @ONLY)
list(APPEND sqfvm_SOURCES "${CMAKE_CURRENT_BINARY_DIR}/git_sha1.cpp")

############################
## ##
## FILEIO RUST SECTION ##
## ##
############################

include(ExternalProject)

find_program(CARGO cargo REQUIRED)

ExternalProject_Add(
fileio_ext
DOWNLOAD_COMMAND ""
CONFIGURE_COMMAND ""
BUILD_COMMAND ${CARGO} build --release
SOURCE_DIR "${PROJECT_SOURCE_DIR}/src/fileio"
BUILD_IN_SOURCE ON
INSTALL_COMMAND ""
LOG_BUILD ON
)

add_library(fileio INTERFACE)
add_dependencies(fileio fileio_ext)
target_include_directories(fileio INTERFACE "${PROJECT_SOURCE_DIR}/src/fileio")
target_link_libraries(fileio INTERFACE
# Below are examples
DEBUG "${PROJECT_SOURCE_DIR}/src/fileio/target/debug/fileio.dll"
OPTIMIZED "${PROJECT_SOURCE_DIR}/src/fileio/target/release/fileio.dll"
)

############################
## ##
## DEPENDENCIES SECTION ##
Expand All @@ -62,7 +92,7 @@ list(APPEND sqfvm_SOURCES "${CMAKE_CURRENT_BINARY_DIR}/git_sha1.cpp")
find_package(Threads)

add_executable(sqfvm ${sqfvm_SOURCES})
target_link_libraries(sqfvm ${CMAKE_DL_LIBS} ${CMAKE_THREAD_LIBS_INIT} ${ST_CXXFS_LIBS})
target_link_libraries(sqfvm ${CMAKE_DL_LIBS} ${CMAKE_THREAD_LIBS_INIT} ${ST_CXXFS_LIBS} fileio)
target_include_directories(sqfvm PUBLIC ${PROJECT_SOURCE_DIR}/src)
target_compile_definitions(sqfvm PRIVATE SQFVM_BUILD)

Expand Down

0 comments on commit 8cd2051

Please sign in to comment.