Mercurial > molko
diff cmake/MolkoLinkData.cmake @ 259:16be1ad3ddba
adventure: start working on maps and teleport
author | David Demelier <markand@malikania.fr> |
---|---|
date | Sun, 06 Dec 2020 11:22:03 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cmake/MolkoLinkData.cmake Sun Dec 06 11:22:03 2020 +0100 @@ -0,0 +1,49 @@ +# +# MolkoBuildTranslations.cmake -- CMake build system for molko +# +# Copyright (c) 2020 David Demelier <markand@malikania.fr> +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +# + +macro(molko_link_data target inputs outputs) + set(${outputs}) + + foreach (f ${inputs}) + file(RELATIVE_PATH basename ${CMAKE_CURRENT_SOURCE_DIR} ${f}) + get_filename_component(basedir ${basename} DIRECTORY) + + if (NOT IS_ABSOLUTE ${CMAKE_INSTALL_DATADIR}) + set(link ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${CMAKE_INSTALL_DATADIR}/${target}/${basename}) + + get_filename_component(outputdir ${link} DIRECTORY) + + add_custom_command( + OUTPUT ${link} + VERBATIM + COMMENT "Linking data ${link}" + COMMAND + ${CMAKE_COMMAND} -E make_directory ${outputdir} + COMMAND + ${CMAKE_COMMAND} -E create_symlink ${f} ${link} + ) + + list(APPEND ${outputs} ${link}) + endif () + + install( + FILES ${f} + DESTINATION ${CMAKE_INSTALL_DATADIR}/${target}/${basedir} + ) + endforeach () +endmacro ()