diff options
| author | Connor Thomson <blumatrikz@gmail.com> | 2026-09-08 18:27:39 -0700 |
|---|---|---|
| committer | Connor Thomson <blumatrikz@gmail.com> | 2026-09-08 18:27:39 -0700 |
| commit | f1ddc12b68b4e4c8087962de25260470e6df2bea (patch) | |
| tree | 7d0440a6402a9b0ef75ded23fa64b68534255bba /cmake/EmbedFile.cmake | |
| parent | 6025860a61386bf767b29c3ec5fd0d31285f1056 (diff) | |
Add tuxanci2 files
Diffstat (limited to 'cmake/EmbedFile.cmake')
| -rw-r--r-- | cmake/EmbedFile.cmake | 37 |
1 files changed, 37 insertions, 0 deletions
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 <https://www.gnu.org/licenses/>. + +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 |