annotate cmake/MolkoDefineExecutable.cmake @ 218:71f989ae8de9

rpg: add support for animated tiles
author David Demelier <markand@malikania.fr>
date Wed, 18 Nov 2020 13:46:29 +0100
parents d59efa737fcc
children d51d9c0c2186
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
121
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 #
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 # MolkoDefineTest.cmake -- CMake build system for molko
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 #
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 # Copyright (c) 2020 David Demelier <markand@malikania.fr>
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 #
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 # Permission to use, copy, modify, and/or distribute this software for any
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 # purpose with or without fee is hereby granted, provided that the above
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 # copyright notice and this permission notice appear in all copies.
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 #
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 #
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 include(${CMAKE_CURRENT_LIST_DIR}/MolkoBuildAssets.cmake)
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
20
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
21 function(molko_define_executable)
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 set(options)
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 set(oneValueArgs FOLDER TARGET)
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 set(multiValueArgs ASSETS FLAGS INCLUDES LIBRARIES SOURCES)
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
25
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 cmake_parse_arguments(EXE "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
27
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
28 if (NOT EXE_TARGET)
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 message(FATAL_ERROR "Missing TARGET argument")
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
30 endif ()
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 if (NOT EXE_SOURCES)
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
32 message(FATAL_ERROR "Missing SOURCES argument")
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 endif ()
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
34
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 molko_build_assets("${EXE_ASSETS}" OUTPUTS)
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
36
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 add_executable(${EXE_TARGET} ${EXE_SOURCES} ${OUTPUTS})
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 target_compile_definitions(${EXE_TARGET} PRIVATE ${EXE_FLAGS})
125
d59efa737fcc cmake: add examples and fix
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
39 target_include_directories(
d59efa737fcc cmake: add examples and fix
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
40 ${EXE_TARGET}
d59efa737fcc cmake: add examples and fix
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
41 PRIVATE
d59efa737fcc cmake: add examples and fix
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
42 ${CMAKE_CURRENT_BINARY_DIR}
d59efa737fcc cmake: add examples and fix
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
43 ${EXE_INCLUDES}
d59efa737fcc cmake: add examples and fix
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
44 )
121
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
45 target_link_libraries(
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 ${EXE_TARGET}
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
47 PRIVATE
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
48 ${EXE_LIBRARIES}
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
49 )
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
50
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
51 if (EXE_FOLDER)
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
52 set_target_properties(${EXE_TARGET} PROPERTIES FOLDER ${EXE_FOLDER})
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
53 endif ()
789b23e01f52 misc: reorganize hierarchy, closes #2490
David Demelier <markand@malikania.fr>
parents:
diff changeset
54 endfunction()