From f1ddc12b68b4e4c8087962de25260470e6df2bea Mon Sep 17 00:00:00 2001 From: Connor Thomson Date: Tue, 8 Sep 2026 18:27:39 -0700 Subject: Add tuxanci2 files --- cmake/EmbedFile.cmake | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 cmake/EmbedFile.cmake (limited to 'cmake/EmbedFile.cmake') diff --git a/cmake/EmbedFile.cmake b/cmake/EmbedFile.cmake new file mode 100644 index 0000000..19e5dbe --- /dev/null +++ b/cmake/EmbedFile.cmake @@ -0,0 +1,37 @@ +# Tuxanci 2 - A first person shooter +# Copyright (C) 2007-2011 Tuxánci Development Team +# Copyright (C) 2025-2026 Connor Thomson +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +foreach(_required IN_FILE OUT_C SYMBASE XXD_EXE) + if(NOT DEFINED ${_required}) + message(FATAL_ERROR "EmbedFile.cmake: missing required -D ${_required}") + endif() +endforeach() + +execute_process( + COMMAND "${XXD_EXE}" -i -n "${SYMBASE}" "${IN_FILE}" + OUTPUT_VARIABLE _xxd_output + RESULT_VARIABLE _xxd_result + ERROR_VARIABLE _xxd_error +) +if(NOT _xxd_result EQUAL 0) + message(FATAL_ERROR "xxd failed embedding ${IN_FILE}: ${_xxd_error}") +endif() + +file(WRITE "${OUT_C}" "${_xxd_output}\n") +file(APPEND "${OUT_C}" "\nunsigned int ${SYMBASE}_size = sizeof(${SYMBASE});\n") +file(APPEND "${OUT_C}" "unsigned char *${SYMBASE}_start = ${SYMBASE};\n") +file(APPEND "${OUT_C}" "unsigned char *${SYMBASE}_end = ${SYMBASE} + sizeof(${SYMBASE});\n") \ No newline at end of file -- cgit v1.2.3