1
0
mirror of https://github.com/blupi-games/planetblupi synced 2024-12-30 10:15:36 +01:00
planetblupi/CMakeLists.txt

116 lines
3.2 KiB
CMake
Raw Normal View History

2017-02-10 23:03:33 +01:00
cmake_minimum_required (VERSION 3.2)
include (${CMAKE_ROOT}/Modules/ExternalProject.cmake)
project (planetblupi)
set (PB_VERSION_MAJOR 2)
set (PB_VERSION_MINOR 0)
set (PB_VERSION_PATCH 0)
2017-02-11 18:10:03 +01:00
set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
2017-02-10 23:03:33 +01:00
set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
2017-02-11 18:58:12 +01:00
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
2017-02-18 19:34:42 +01:00
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=c++11")
2017-02-11 18:58:12 +01:00
endif ()
2017-02-10 23:03:33 +01:00
file (GLOB_RECURSE sources src/*.cpp src/*.h)
2017-02-15 22:02:59 +01:00
file (GLOB_RECURSE po resources/po/*.po)
2017-02-10 23:03:33 +01:00
include_directories (${CMAKE_CURRENT_SOURCE_DIR})
2017-02-18 23:43:19 +01:00
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
set (CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++")
endif ()
add_executable (planetblupi ${sources})
2017-02-10 23:03:33 +01:00
file (COPY resources/data DESTINATION share/planetblupi)
file (COPY resources/image DESTINATION share/planetblupi)
file (COPY resources/movie DESTINATION share/planetblupi)
file (COPY resources/sound DESTINATION share/planetblupi)
file (COPY resources/music DESTINATION share/planetblupi)
2017-02-10 23:03:33 +01:00
# Dependencies
find_package (PkgConfig)
find_package (Intl REQUIRED)
find_package (SDL2 REQUIRED)
find_package (PkgConfig REQUIRED)
pkg_search_module (SDL2_MIXER REQUIRED SDL2_mixer)
2017-02-12 22:06:08 +01:00
pkg_search_module (SDL2_IMAGE REQUIRED SDL2_image)
2017-02-10 23:03:33 +01:00
##################
## SDL_kitchensink
2017-02-14 23:47:24 +01:00
##################
2017-02-14 18:17:45 +01:00
ExternalProject_Add (SDL_kitchensink_Project
2017-02-10 23:03:33 +01:00
GIT_REPOSITORY https://github.com/katajakasa/SDL_kitchensink.git
2017-02-11 18:10:03 +01:00
PREFIX ${CMAKE_CURRENT_BINARY_DIR}
2017-02-10 23:03:33 +01:00
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}
)
2017-02-14 18:17:45 +01:00
ExternalProject_Get_Property (SDL_kitchensink_Project install_dir)
2017-02-10 23:03:33 +01:00
include_directories (${install_dir}/include)
2017-02-14 18:17:45 +01:00
if (WIN32)
2017-02-14 23:11:27 +01:00
add_library (SDL_kitchensink STATIC IMPORTED)
set_property (TARGET SDL_kitchensink PROPERTY IMPORTED_LOCATION ${install_dir}/lib/libSDL_kitchensink.dll.a)
2017-02-14 18:17:45 +01:00
else ()
2017-02-14 23:11:27 +01:00
add_library (SDL_kitchensink SHARED IMPORTED)
set_property (TARGET SDL_kitchensink PROPERTY IMPORTED_LOCATION ${install_dir}/lib/libSDL_kitchensink.so)
2017-02-14 18:17:45 +01:00
endif ()
2017-02-14 23:07:44 +01:00
add_dependencies (planetblupi SDL_kitchensink_Project)
2017-02-14 18:17:45 +01:00
2017-02-14 23:47:24 +01:00
###########################
## Main binary dependencies
###########################
2017-02-10 23:03:33 +01:00
target_link_libraries (planetblupi PUBLIC
${Intl_LIBRARIES}
${SDL2_LIBRARIES}
${SDL2_MIXER_LIBRARIES}
2017-02-12 22:06:08 +01:00
${SDL2_IMAGE_LIBRARIES}
2017-02-14 18:17:45 +01:00
SDL_kitchensink
2017-02-10 23:03:33 +01:00
)
2017-02-13 23:05:49 +01:00
2017-02-14 23:47:24 +01:00
##########
2017-02-13 23:05:49 +01:00
## GetText
2017-02-14 23:47:24 +01:00
##########
2017-02-13 23:05:49 +01:00
find_package (Gettext)
2017-02-15 22:02:59 +01:00
set (_potFile ${CMAKE_CURRENT_SOURCE_DIR}/resources/po/${PROJECT_NAME}.pot)
2017-02-13 23:05:49 +01:00
add_custom_command (OUTPUT ${_potFile}
2017-02-15 22:21:59 +01:00
COMMAND xgettext --keyword=translate -o ${_potFile} ${sources}
2017-02-18 12:17:58 +01:00
DEPENDS ${sources}
2017-02-14 23:08:21 +01:00
COMMENT "Extract translatable messages to ${_potFile}"
2017-02-13 23:05:49 +01:00
)
add_custom_target (pot_file ALL ${_all}
2017-02-14 23:08:21 +01:00
DEPENDS ${_potFile}
2017-02-13 23:05:49 +01:00
)
2017-02-14 23:08:21 +01:00
gettext_create_translations (${_potFile} ALL ${po})
## Put mo files to appropriate directory
2017-02-15 23:11:23 +01:00
foreach (file ${_gmoFiles})
get_filename_component (_lang ${file} NAME_WE)
2017-02-21 22:35:48 +01:00
set (_out "share/locale/${_lang}/LC_MESSAGES")
2017-02-15 23:11:23 +01:00
add_custom_command (OUTPUT ${_out}/planetblupi.mo
COMMAND ${CMAKE_COMMAND} -E copy ${file} ${_out}/planetblupi.mo
DEPENDS ${file}
)
add_custom_target ("po-${_lang}" ALL ${_all}
DEPENDS ${_out}/planetblupi.mo
)
endforeach (file)