Build images and .meta lists with ALL target

This commit is contained in:
Lukas Böger 2021-07-23 22:13:46 +01:00
parent fe953319ff
commit b827cfb429

View file

@ -160,6 +160,8 @@ endif()
set(chibi-ffi ${CMAKE_CURRENT_SOURCE_DIR}/tools/chibi-ffi) set(chibi-ffi ${CMAKE_CURRENT_SOURCE_DIR}/tools/chibi-ffi)
set(chibi-genstatic ${CMAKE_CURRENT_SOURCE_DIR}/tools/chibi-genstatic) set(chibi-genstatic ${CMAKE_CURRENT_SOURCE_DIR}/tools/chibi-genstatic)
add_custom_target(chibi-compiled-libs)
function(add_compiled_library cfile) function(add_compiled_library cfile)
if (NOT BUILD_SHARED_LIBS) if (NOT BUILD_SHARED_LIBS)
return() return()
@ -177,6 +179,7 @@ function(add_compiled_library cfile)
add_library(${libname} ${cfile}) add_library(${libname} ${cfile})
target_link_libraries(${libname} PRIVATE libchibi-scheme) target_link_libraries(${libname} PRIVATE libchibi-scheme)
add_dependencies(chibi-compiled-libs ${libname})
set_target_properties(${libname} PROPERTIES set_target_properties(${libname} PROPERTIES
LIBRARY_OUTPUT_DIRECTORY ${libdir} LIBRARY_OUTPUT_DIRECTORY ${libdir}
@ -446,16 +449,28 @@ add_test(NAME "foreign-typeid"
# Image, pkgconfig and meta file generation # Image, pkgconfig and meta file generation
# #
add_custom_target(chibi-images add_custom_command(OUTPUT chibi.img
COMMAND chibi-scheme -I ${CMAKE_CURRENT_BINARY_DIR}/lib COMMAND chibi-scheme -I ${CMAKE_CURRENT_BINARY_DIR}/lib -mchibi.repl
-mchibi.repl -d ${CMAKE_CURRENT_BINARY_DIR}/chibi.img -d ${CMAKE_CURRENT_BINARY_DIR}/chibi.img
COMMAND chibi-scheme -I ${CMAKE_CURRENT_BINARY_DIR}/lib WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
-xscheme.red -mchibi.repl -d ${CMAKE_CURRENT_BINARY_DIR}/red.img add_custom_command(OUTPUT red.img
COMMAND chibi-scheme -I ${CMAKE_CURRENT_BINARY_DIR}/lib -xscheme.red -mchibi.repl
-d ${CMAKE_CURRENT_BINARY_DIR}/red.img
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
add_custom_command(OUTPUT snow.img
COMMAND chibi-scheme -I ${CMAKE_CURRENT_BINARY_DIR}/lib COMMAND chibi-scheme -I ${CMAKE_CURRENT_BINARY_DIR}/lib
-mchibi.snow.commands -mchibi.snow.interface -mchibi.snow.package -mchibi.snow.utils -mchibi.snow.commands -mchibi.snow.interface -mchibi.snow.package -mchibi.snow.utils
-d ${CMAKE_CURRENT_BINARY_DIR}/snow.img -d ${CMAKE_CURRENT_BINARY_DIR}/snow.img
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
add_custom_target(chibi-images ALL
DEPENDS
${CMAKE_CURRENT_BINARY_DIR}/chibi.img
${CMAKE_CURRENT_BINARY_DIR}/red.img
${CMAKE_CURRENT_BINARY_DIR}/snow.img
# The dependency on libchibi-scheme is crucial here:
chibi-compiled-libs)
configure_file(contrib/chibi-scheme.pc.cmake.in chibi-scheme.pc @ONLY) configure_file(contrib/chibi-scheme.pc.cmake.in chibi-scheme.pc @ONLY)
function(generate_package_list libdir output) function(generate_package_list libdir output)
@ -479,7 +494,7 @@ generate_package_list(lib/chibi .chibi.meta)
generate_package_list(lib/scheme .scheme.meta) generate_package_list(lib/scheme .scheme.meta)
generate_package_list(lib/srfi .srfi.meta) generate_package_list(lib/srfi .srfi.meta)
add_custom_target(meta-lists add_custom_target(chibi-meta-lists ALL
DEPENDS DEPENDS
${CMAKE_CURRENT_BINARY_DIR}/.chibi.meta ${CMAKE_CURRENT_BINARY_DIR}/.chibi.meta
${CMAKE_CURRENT_BINARY_DIR}/.scheme.meta ${CMAKE_CURRENT_BINARY_DIR}/.scheme.meta