1 add_subdirectory(openttd)
2 add_subdirectory(orig_extra)
4 set(BASESET_SOURCE_FILES
5 ${CMAKE_CURRENT_SOURCE_DIR}/orig_dos.obg
6 ${CMAKE_CURRENT_SOURCE_DIR}/orig_dos_de.obg
7 ${CMAKE_CURRENT_SOURCE_DIR}/orig_win.obg
8 ${CMAKE_CURRENT_SOURCE_DIR}/no_music.obm
9 ${CMAKE_CURRENT_SOURCE_DIR}/orig_dos.obm
10 ${CMAKE_CURRENT_SOURCE_DIR}/orig_tto.obm
11 ${CMAKE_CURRENT_SOURCE_DIR}/orig_win.obm
12 ${CMAKE_CURRENT_SOURCE_DIR}/no_sound.obs
13 ${CMAKE_CURRENT_SOURCE_DIR}/orig_dos.obs
14 ${CMAKE_CURRENT_SOURCE_DIR}/orig_win.obs
16 set(BASESET_OTHER_SOURCE_FILES
17 ${CMAKE_CURRENT_SOURCE_DIR}/openttd.grf
18 ${CMAKE_CURRENT_SOURCE_DIR}/opntitle.dat
19 ${CMAKE_CURRENT_SOURCE_DIR}/orig_extra.grf
20 ${CMAKE_CURRENT_SOURCE_DIR}/../openttd.32.bmp
23 # Done by the subdirectories, if nforenum / grfcodec is installed
25 set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/openttd.grf PROPERTIES GENERATED TRUE)
26 set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/orig_extra.grf PROPERTIES GENERATED TRUE)
28 list(APPEND BASESET_BINARY_FILES openttd.grf)
29 list(APPEND BASESET_BINARY_FILES orig_extra.grf)
32 set(BASESET_EXTRAGRF_FILE ${CMAKE_CURRENT_SOURCE_DIR}/orig_extra.grf)
34 # Walk over all the baseset files, and generate a command to configure them
35 foreach(BASESET_SOURCE_FILE IN LISTS BASESET_SOURCE_FILES)
36 get_filename_component(BASESET_SOURCE_FILE_NAME "${BASESET_SOURCE_FILE}" NAME)
37 set(BASESET_BINARY_FILE "${CMAKE_BINARY_DIR}/baseset/${BASESET_SOURCE_FILE_NAME}")
39 get_target_property(LANG_SOURCE_FILES language_files LANG_SOURCE_FILES)
41 add_custom_command_timestamp(OUTPUT ${BASESET_BINARY_FILE}
42 COMMAND ${CMAKE_COMMAND}
43 -DBASESET_SOURCE_FILE=${BASESET_SOURCE_FILE}
44 -DBASESET_BINARY_FILE=${BASESET_BINARY_FILE}
45 -DBASESET_EXTRAGRF_FILE=${BASESET_EXTRAGRF_FILE}
46 -P ${CMAKE_SOURCE_DIR}/cmake/scripts/Baseset.cmake
49 MAIN_DEPENDENCY ${BASESET_SOURCE_FILE}
50 DEPENDS ${LANG_SOURCE_FILES}
51 ${BASESET_EXTRAGRF_FILE}
52 ${CMAKE_SOURCE_DIR}/cmake/scripts/Baseset.cmake
53 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
54 COMMENT "Generating ${BASESET_SOURCE_FILE_NAME} baseset metadata file"
57 list(APPEND BASESET_BINARY_FILES ${BASESET_BINARY_FILE})
60 # Walk over all the other baseset files, and generate a command to copy them
61 foreach(BASESET_OTHER_SOURCE_FILE IN LISTS BASESET_OTHER_SOURCE_FILES)
62 get_filename_component(BASESET_OTHER_SOURCE_FILE_NAME "${BASESET_OTHER_SOURCE_FILE}" NAME)
63 set(BASESET_OTHER_BINARY_FILE "${CMAKE_BINARY_DIR}/baseset/${BASESET_OTHER_SOURCE_FILE_NAME}")
65 add_custom_command(OUTPUT ${BASESET_OTHER_BINARY_FILE}
66 COMMAND ${CMAKE_COMMAND} -E copy
67 ${BASESET_OTHER_SOURCE_FILE}
68 ${BASESET_OTHER_BINARY_FILE}
69 MAIN_DEPENDENCY ${BASESET_OTHER_SOURCE_FILE}
70 COMMENT "Copying ${BASESET_OTHER_SOURCE_FILE_NAME} baseset file"
73 list(APPEND BASESET_BINARY_FILES ${BASESET_OTHER_BINARY_FILE})
76 # Create a new target which generates all baseset metadata files
77 add_custom_target_timestamp(baseset_files
79 ${BASESET_BINARY_FILES}
85 add_dependencies(basesets
88 add_library(openttd::basesets ALIAS basesets)