Improve QVM tools dependencies

This commit is contained in:
Tim Angus 2025-08-13 12:42:40 +01:00
parent 32b12d29f2
commit 8ca7b94f7f

View File

@ -12,6 +12,9 @@ if(CMAKE_BUILD_TYPE)
set(BUILD_TYPE_ARG -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE})
endif()
set(Q3LCC ${TOOLS_DIR}/$<CONFIG>/q3lcc)
set(Q3ASM ${TOOLS_DIR}/$<CONFIG>/q3asm)
ExternalProject_Add(qvm_tools
SOURCE_DIR ${CMAKE_SOURCE_DIR}/cmake/tools
BINARY_DIR ${TOOLS_DIR}
@ -21,11 +24,9 @@ ExternalProject_Add(qvm_tools
-DCMAKE_MINIMUM_REQUIRED_VERSION=${CMAKE_MINIMUM_REQUIRED_VERSION}
${BUILD_TYPE_ARG}
BUILD_ALWAYS TRUE
BUILD_BYPRODUCTS ${Q3LCC} ${Q3ASM}
INSTALL_COMMAND "")
set(Q3LCC ${TOOLS_DIR}/$<CONFIG>/q3lcc)
set(Q3ASM ${TOOLS_DIR}/$<CONFIG>/q3asm)
function(add_qvm MODULE_NAME)
list(REMOVE_AT ARGV 0)
cmake_parse_arguments(ARG "" "" "DEFINITIONS;OUTPUT_NAME;OUTPUT_DIRECTORY;SOURCES" ${ARGV})
@ -66,7 +67,7 @@ function(add_qvm MODULE_NAME)
add_custom_command(
OUTPUT ${ASM_FILE}
COMMAND ${Q3LCC} ${LCC_FLAGS} -o ${ASM_FILE} ${SOURCE}
DEPENDS ${SOURCE} qvm_tools
DEPENDS ${SOURCE} qvm_tools ${Q3LCC}
COMMENT "Building C object ${ASM_FILE_COMMENT}")
list(APPEND ASM_FILES ${ASM_FILE})
@ -76,7 +77,7 @@ function(add_qvm MODULE_NAME)
add_custom_command(
OUTPUT ${QVM_FILE}
COMMAND ${Q3ASM} -o ${QVM_FILE} ${ASM_FILES}
DEPENDS ${ASM_FILES} qvm_tools
DEPENDS ${ASM_FILES} qvm_tools ${Q3ASM}
COMMENT "Linking C QVM library ${QVM_FILE_COMMENT}")
string(REGEX REPLACE "[^A-Za-z0-9]" "_" TARGET_NAME ${MODULE_NAME})