mirror of
https://github.com/vsariola/sointu.git
synced 2025-05-28 03:10:24 -04:00
build: make targets properly rebuild when templates or compiler changed
This commit is contained in:
parent
231e055faf
commit
b028fea59a
@ -62,8 +62,8 @@ else()
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
# the tests include the entire ASM but we still want to rebuild when they change
|
# the tests include the entire ASM but we still want to rebuild when they change
|
||||||
file(GLOB x86templates ${PROJECT_SOURCE_DIR}/templates/amd64-386/*.asm)
|
file(GLOB x86templates "${PROJECT_SOURCE_DIR}/vm/compiler/templates/amd64-386/*.asm")
|
||||||
file(GLOB wasmtemplates ${PROJECT_SOURCE_DIR}/templates/wasm/*.wat)
|
file(GLOB wasmtemplates "${PROJECT_SOURCE_DIR}/vm/compiler/templates/wasm/*.wat")
|
||||||
file(GLOB sointusrc "${PROJECT_SOURCE_DIR}/*.go")
|
file(GLOB sointusrc "${PROJECT_SOURCE_DIR}/*.go")
|
||||||
file(GLOB compilersrc "${PROJECT_SOURCE_DIR}/compiler/*.go")
|
file(GLOB compilersrc "${PROJECT_SOURCE_DIR}/compiler/*.go")
|
||||||
file(GLOB compilecmdsrc "${PROJECT_SOURCE_DIR}/cmd/sointu-compile/*.go")
|
file(GLOB compilecmdsrc "${PROJECT_SOURCE_DIR}/cmd/sointu-compile/*.go")
|
||||||
@ -83,16 +83,23 @@ set(sointuasm sointu.asm)
|
|||||||
|
|
||||||
# Build sointu-cli only once because go run has everytime quite a bit of delay when
|
# Build sointu-cli only once because go run has everytime quite a bit of delay when
|
||||||
# starting
|
# starting
|
||||||
|
add_custom_command(
|
||||||
|
OUTPUT
|
||||||
|
"${compilecmd}"
|
||||||
|
COMMAND
|
||||||
|
${GO} build -o "${compilecmd}" ${PROJECT_SOURCE_DIR}/cmd/sointu-compile/main.go
|
||||||
|
DEPENDS ${x86templates} ${wasmtemplates} ${sointusrc} ${compilersrc} ${compilecmdsrc}
|
||||||
|
)
|
||||||
|
|
||||||
add_custom_target(
|
add_custom_target(
|
||||||
sointu-compiler
|
sointu-compiler
|
||||||
COMMAND ${GO} build -o ${compilecmd} ${PROJECT_SOURCE_DIR}/cmd/sointu-compile/main.go
|
DEPENDS ${compilecmd}
|
||||||
SOURCES "${sointusrc}" "${compilersrc}" "${compilecmdsrc}"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
OUTPUT ${sointuasm}
|
OUTPUT ${sointuasm}
|
||||||
COMMAND ${compilecmd} -arch=${arch} -a -o ${CMAKE_CURRENT_BINARY_DIR}
|
COMMAND ${compilecmd} -arch=${arch} -a -o ${CMAKE_CURRENT_BINARY_DIR}
|
||||||
DEPENDS "${templates}" sointu-compiler
|
DEPENDS ${compilecmd}
|
||||||
)
|
)
|
||||||
|
|
||||||
add_library(${STATICLIB} ${sointuasm})
|
add_library(${STATICLIB} ${sointuasm})
|
||||||
|
@ -12,6 +12,7 @@ add_custom_command(
|
|||||||
${CMAKE_CURRENT_BINARY_DIR}
|
${CMAKE_CURRENT_BINARY_DIR}
|
||||||
DEPENDS
|
DEPENDS
|
||||||
"${PROJECT_SOURCE_DIR}/examples/patches/physics_girl_st.yml"
|
"${PROJECT_SOURCE_DIR}/examples/patches/physics_girl_st.yml"
|
||||||
|
${compilecmd}
|
||||||
OUTPUT
|
OUTPUT
|
||||||
physics_girl_st.asm
|
physics_girl_st.asm
|
||||||
physics_girl_st.h
|
physics_girl_st.h
|
||||||
@ -21,7 +22,6 @@ add_custom_command(
|
|||||||
)
|
)
|
||||||
|
|
||||||
add_library(physics_girl_st physics_girl_st.asm)
|
add_library(physics_girl_st physics_girl_st.asm)
|
||||||
add_dependencies(physics_girl_st sointu-compiler)
|
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
add_executable(cplay-winmm
|
add_executable(cplay-winmm
|
||||||
|
@ -15,6 +15,7 @@ function(add_asm_example identifier songfile architecture sizeof_void_ptr window
|
|||||||
${CMAKE_CURRENT_BINARY_DIR}
|
${CMAKE_CURRENT_BINARY_DIR}
|
||||||
DEPENDS
|
DEPENDS
|
||||||
${songfile}
|
${songfile}
|
||||||
|
${compilecmd}
|
||||||
OUTPUT
|
OUTPUT
|
||||||
${songprefix}_${architecture}.asm
|
${songprefix}_${architecture}.asm
|
||||||
${songprefix}_${architecture}.h
|
${songprefix}_${architecture}.h
|
||||||
@ -50,7 +51,6 @@ function(add_asm_example identifier songfile architecture sizeof_void_ptr window
|
|||||||
target_compile_definitions(${identifier}-${architecture} PRIVATE TRACK_INCLUDE="${songprefix}_${architecture}.inc")
|
target_compile_definitions(${identifier}-${architecture} PRIVATE TRACK_INCLUDE="${songprefix}_${architecture}.inc")
|
||||||
|
|
||||||
# Set up dependencies
|
# Set up dependencies
|
||||||
add_dependencies(${identifier}-${architecture} sointu-compiler)
|
|
||||||
add_dependencies(examples ${identifier}-${architecture})
|
add_dependencies(examples ${identifier}-${architecture})
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ function(regression_test testname)
|
|||||||
add_custom_command(
|
add_custom_command(
|
||||||
OUTPUT ${asmfile}
|
OUTPUT ${asmfile}
|
||||||
COMMAND ${compilecmd} ${ARGV4} -arch=${arch} -o ${CMAKE_CURRENT_BINARY_DIR}/${asmfile} ${CMAKE_CURRENT_SOURCE_DIR}/${source}
|
COMMAND ${compilecmd} ${ARGV4} -arch=${arch} -o ${CMAKE_CURRENT_BINARY_DIR}/${asmfile} ${CMAKE_CURRENT_SOURCE_DIR}/${source}
|
||||||
DEPENDS ${source} ${x86templates} sointu-compiler
|
DEPENDS ${source} ${x86templates} ${compilecmd}
|
||||||
)
|
)
|
||||||
|
|
||||||
add_executable(${testname} test_renderer.c ${asmfile})
|
add_executable(${testname} test_renderer.c ${asmfile})
|
||||||
@ -26,11 +26,17 @@ function(regression_test testname)
|
|||||||
set(wasmfile ${CMAKE_CURRENT_BINARY_DIR}/${testname}.wasm)
|
set(wasmfile ${CMAKE_CURRENT_BINARY_DIR}/${testname}.wasm)
|
||||||
set(watfile ${CMAKE_CURRENT_BINARY_DIR}/${testname}.wat)
|
set(watfile ${CMAKE_CURRENT_BINARY_DIR}/${testname}.wat)
|
||||||
set(wasmtarget wasm_${testname})
|
set(wasmtarget wasm_${testname})
|
||||||
add_custom_target(${wasmtarget} ALL
|
add_custom_command(
|
||||||
|
OUTPUT ${wasmfile}
|
||||||
COMMAND ${compilecmd} ${ARGV4} -arch=wasm -o ${watfile} ${CMAKE_CURRENT_SOURCE_DIR}/${source} && ${WAT2WASM} -o ${wasmfile} ${watfile}
|
COMMAND ${compilecmd} ${ARGV4} -arch=wasm -o ${watfile} ${CMAKE_CURRENT_SOURCE_DIR}/${source} && ${WAT2WASM} -o ${wasmfile} ${watfile}
|
||||||
SOURCES "${source}" "${wasmtemplates}"
|
DEPENDS ${source} ${wasmtemplates} ${compilecmd}
|
||||||
DEPENDS sointu-compiler
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
add_custom_target(${wasmtarget} ALL
|
||||||
|
SOURCES "${source}" "${wasmtemplates}"
|
||||||
|
DEPENDS ${wasmfile}
|
||||||
|
)
|
||||||
|
|
||||||
add_test(${wasmtarget} ${NODE} ${CMAKE_CURRENT_SOURCE_DIR}/wasm_test_renderer.es6 ${wasmfile} ${CMAKE_CURRENT_SOURCE_DIR}/expected_output/${testname}.raw)
|
add_test(${wasmtarget} ${NODE} ${CMAKE_CURRENT_SOURCE_DIR}/wasm_test_renderer.es6 ${wasmfile} ${CMAKE_CURRENT_SOURCE_DIR}/expected_output/${testname}.raw)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
Loading…
Reference in New Issue
Block a user