summaryrefslogtreecommitdiff
path: root/media/baseset/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'media/baseset/CMakeLists.txt')
-rw-r--r--media/baseset/CMakeLists.txt87
1 files changed, 87 insertions, 0 deletions
diff --git a/media/baseset/CMakeLists.txt b/media/baseset/CMakeLists.txt
new file mode 100644
index 000000000..309ac7a49
--- /dev/null
+++ b/media/baseset/CMakeLists.txt
@@ -0,0 +1,87 @@
+add_subdirectory(openttd)
+add_subdirectory(orig_extra)
+
+set(BASESET_SOURCE_FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/orig_dos.obg
+ ${CMAKE_CURRENT_SOURCE_DIR}/orig_dos_de.obg
+ ${CMAKE_CURRENT_SOURCE_DIR}/orig_win.obg
+ ${CMAKE_CURRENT_SOURCE_DIR}/no_music.obm
+ ${CMAKE_CURRENT_SOURCE_DIR}/orig_dos.obm
+ ${CMAKE_CURRENT_SOURCE_DIR}/orig_tto.obm
+ ${CMAKE_CURRENT_SOURCE_DIR}/orig_win.obm
+ ${CMAKE_CURRENT_SOURCE_DIR}/no_sound.obs
+ ${CMAKE_CURRENT_SOURCE_DIR}/orig_dos.obs
+ ${CMAKE_CURRENT_SOURCE_DIR}/orig_win.obs
+)
+set(BASESET_OTHER_SOURCE_FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/openttd.grf
+ ${CMAKE_CURRENT_SOURCE_DIR}/opntitle.dat
+ ${CMAKE_CURRENT_SOURCE_DIR}/orig_extra.grf
+)
+
+# Done by the subdirectories, if nforenum / grfcodec is installed
+if (NFORENUM_FOUND AND GRFCODEC_FOUND)
+ set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/openttd.grf PROPERTIES GENERATED TRUE)
+ set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/orig_extra.grf PROPERTIES GENERATED TRUE)
+
+ list(APPEND BASESET_BINARY_FILES openttd.grf)
+ list(APPEND BASESET_BINARY_FILES orig_extra.grf)
+endif (NFORENUM_FOUND AND GRFCODEC_FOUND)
+
+set(BASESET_EXTRAGRF_FILE ${CMAKE_CURRENT_SOURCE_DIR}/orig_extra.grf)
+
+# Walk over all the baseset files, and generate a command to configure them
+foreach(BASESET_SOURCE_FILE IN LISTS BASESET_SOURCE_FILES)
+ get_filename_component(BASESET_SOURCE_FILE_NAME "${BASESET_SOURCE_FILE}" NAME)
+ set(BASESET_BINARY_FILE "${CMAKE_BINARY_DIR}/baseset/${BASESET_SOURCE_FILE_NAME}")
+
+ get_target_property(LANG_SOURCE_FILES language_files LANG_SOURCE_FILES)
+
+ add_custom_command_timestamp(OUTPUT ${BASESET_BINARY_FILE}
+ COMMAND ${CMAKE_COMMAND}
+ -DBASESET_SOURCE_FILE=${BASESET_SOURCE_FILE}
+ -DBASESET_BINARY_FILE=${BASESET_BINARY_FILE}
+ -DBASESET_EXTRAGRF_FILE=${BASESET_EXTRAGRF_FILE}
+ -P ${CMAKE_SOURCE_DIR}/cmake/scripts/Baseset.cmake
+ --
+ ${LANG_SOURCE_FILES}
+ MAIN_DEPENDENCY ${BASESET_SOURCE_FILE}
+ DEPENDS ${LANG_SOURCE_FILES}
+ ${BASESET_EXTRAGRF_FILE}
+ ${CMAKE_SOURCE_DIR}/cmake/scripts/Baseset.cmake
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ COMMENT "Generating ${BASESET_SOURCE_FILE_NAME} baseset metadata file"
+ )
+
+ list(APPEND BASESET_BINARY_FILES ${BASESET_BINARY_FILE})
+endforeach(BASESET_SOURCE_FILE)
+
+# Walk over all the other baseset files, and generate a command to copy them
+foreach(BASESET_OTHER_SOURCE_FILE IN LISTS BASESET_OTHER_SOURCE_FILES)
+ get_filename_component(BASESET_OTHER_SOURCE_FILE_NAME "${BASESET_OTHER_SOURCE_FILE}" NAME)
+ set(BASESET_OTHER_BINARY_FILE "${CMAKE_BINARY_DIR}/baseset/${BASESET_OTHER_SOURCE_FILE_NAME}")
+
+ add_custom_command(OUTPUT ${BASESET_OTHER_BINARY_FILE}
+ COMMAND ${CMAKE_COMMAND} -E copy
+ ${BASESET_OTHER_SOURCE_FILE}
+ ${BASESET_OTHER_BINARY_FILE}
+ MAIN_DEPENDENCY ${BASESET_OTHER_SOURCE_FILE}
+ COMMENT "Copying ${BASESET_OTHER_SOURCE_FILE_NAME} baseset file"
+ )
+
+ list(APPEND BASESET_BINARY_FILES ${BASESET_OTHER_BINARY_FILE})
+endforeach(BASESET_OTHER_SOURCE_FILE)
+
+# Create a new target which generates all baseset metadata files
+add_custom_target_timestamp(baseset_files
+ DEPENDS
+ ${BASESET_BINARY_FILES}
+)
+
+add_library(basesets
+ INTERFACE
+)
+add_dependencies(basesets
+ baseset_files
+)
+add_library(openttd::basesets ALIAS basesets)