Move embed utility to a separate project.

This has to be separate to build a host executable during cross-compilation
(e.g. on emscripten builds).
This commit is contained in:
Bartosz Taudul
2025-06-01 14:04:46 +02:00
parent 111f68052f
commit ec205fa854
3 changed files with 22 additions and 3 deletions

View File

@@ -32,7 +32,13 @@ include(${CMAKE_CURRENT_LIST_DIR}/../cmake/config.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/../cmake/vendor.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/../cmake/server.cmake)
add_executable(embed src/helpers/embed.cpp ../public/common/tracy_lz4.cpp ../public/common/tracy_lz4hc.cpp)
include(ExternalProject)
ExternalProject_Add(embed
SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/helpers
CMAKE_ARGS
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}
)
add_custom_command(
OUTPUT data
@@ -42,8 +48,8 @@ add_custom_command(
function(Embed LIST NAME FILE)
add_custom_command(
OUTPUT data/${NAME}.cpp data/${NAME}.hpp
COMMAND embed ${NAME} ${CMAKE_CURRENT_LIST_DIR}/${FILE} data/${NAME}
DEPENDS data embed ${CMAKE_CURRENT_LIST_DIR}/${FILE}
COMMAND ${CMAKE_CURRENT_BINARY_DIR}/embed ${NAME} ${CMAKE_CURRENT_LIST_DIR}/${FILE} data/${NAME}
DEPENDS data ${CMAKE_CURRENT_BINARY_DIR}/embed ${CMAKE_CURRENT_LIST_DIR}/${FILE}
)
list(APPEND ${LIST} data/${NAME}.cpp)
return(PROPAGATE ${LIST})

View File

@@ -0,0 +1,13 @@
cmake_minimum_required(VERSION 3.16)
set(CMAKE_CXX_STANDARD 20)
project(helpers LANGUAGES CXX)
add_executable(embed
../../public/common/tracy_lz4.cpp
../../public/common/tracy_lz4hc.cpp
embed.cpp
)
install(TARGETS embed DESTINATION .)