99 lines
3.2 KiB
CMake
99 lines
3.2 KiB
CMake
cmake_minimum_required(VERSION 2.8)
|
|
|
|
include(../i18n-tools/I18NTools.cmake)
|
|
|
|
set(LEVEL_INSTALL_DATA_DIR ${COLOBOT_INSTALL_DATA_DIR}/levels)
|
|
|
|
##
|
|
# Add level category directory with all chapters inside
|
|
##
|
|
function(add_level_category level_category_dir)
|
|
|
|
# If translations are turned off, just install all files as they are
|
|
if(NOT TRANSLATIONS)
|
|
install(DIRECTORY ${level_category_dir} DESTINATION ${LEVEL_INSTALL_DATA_DIR})
|
|
return()
|
|
endif()
|
|
|
|
message(STATUS "Adding translation targets for level/${level_category_dir}")
|
|
|
|
add_chaptertitles(${level_category_dir})
|
|
|
|
file(GLOB level_dirs RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${level_category_dir}/chapter*/level*)
|
|
foreach(level_dir ${level_dirs})
|
|
add_level(${level_dir})
|
|
endforeach()
|
|
|
|
# Install all other category files
|
|
install(DIRECTORY ${level_category_dir}/ DESTINATION ${LEVEL_INSTALL_DATA_DIR}/${level_category_dir}
|
|
PATTERN "chapter*" EXCLUDE
|
|
PATTERN "po" EXCLUDE)
|
|
|
|
# Install all other chapter files
|
|
file(GLOB chapter_dirs RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${level_category_dir}/chapter*)
|
|
foreach(chapter_dir ${chapter_dirs})
|
|
install(DIRECTORY ${chapter_dir}/ DESTINATION ${LEVEL_INSTALL_DATA_DIR}/${chapter_dir}
|
|
PATTERN "level*" EXCLUDE
|
|
PATTERN "chaptertitle.txt" EXCLUDE)
|
|
endforeach()
|
|
|
|
endfunction()
|
|
|
|
##
|
|
# Add chaptertitles
|
|
##
|
|
function(add_chaptertitles level_category_dir)
|
|
|
|
set(work_dir ${DATA_BINARY_DIR}/levels-po/${level_category_dir})
|
|
generate_translations(translated_chaptertitle_files
|
|
"chaptertitles"
|
|
${CMAKE_CURRENT_SOURCE_DIR}
|
|
${level_category_dir}
|
|
${level_category_dir}/po
|
|
${work_dir}
|
|
"")
|
|
|
|
install_preserving_relative_paths("${translated_chaptertitle_files}"
|
|
${work_dir}
|
|
${LEVEL_INSTALL_DATA_DIR}/${level_category_dir})
|
|
|
|
endfunction()
|
|
|
|
##
|
|
# Add level directory
|
|
##
|
|
function(add_level level_dir)
|
|
|
|
set(work_dir ${DATA_BINARY_DIR}/levels-po/${level_dir})
|
|
generate_translations(translated_level_files
|
|
"level"
|
|
${CMAKE_CURRENT_SOURCE_DIR}
|
|
${level_dir}
|
|
${level_dir}/po
|
|
${work_dir}
|
|
"")
|
|
|
|
file(GLOB english_help_files ${level_dir}/help/*)
|
|
install(FILES ${english_help_files} DESTINATION ${LEVEL_INSTALL_DATA_DIR}/${level_dir}/help)
|
|
|
|
install_preserving_relative_paths("${translated_level_files}"
|
|
${work_dir}
|
|
${LEVEL_INSTALL_DATA_DIR}/${level_dir})
|
|
|
|
# Install all other (non-translatable) files
|
|
install(DIRECTORY ${level_dir}/ DESTINATION ${LEVEL_INSTALL_DATA_DIR}/${level_dir}
|
|
PATTERN "help*" EXCLUDE
|
|
PATTERN "po*" EXCLUDE
|
|
PATTERN "scene.txt" EXCLUDE)
|
|
|
|
endfunction()
|
|
|
|
|
|
add_level_category(missions)
|
|
add_level_category(freemissions)
|
|
add_level_category(exercises)
|
|
add_level_category(challenges)
|
|
add_level_category(battles)
|
|
|
|
install(DIRECTORY other DESTINATION ${LEVEL_INSTALL_DATA_DIR})
|