bygfoot/CMakeLists.txt

172 lines
6.2 KiB
CMake

cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
set(CMAKE_LEGACY_CYGWIN_WIN32 0)
project("bygfoot")
find_package(PkgConfig REQUIRED)
pkg_check_modules(GLIB_PKG glib-2.0)
if (GLIB_PKG_FOUND)
message(Found glib-2.0)
# include_directories(${GLIB_PKG_INCLUDE_DIRS})
endif (GLIB_PKG_FOUND)
pkg_check_modules (GTK2 REQUIRED gtk+-2.0)
# Setup CMake to use GTK+, tell the compiler where to look for headers
# and to the linker where to look for libraries
# Setup CMake to use GTK+, tell the compiler where to look for headers
include_directories (${GTK2_INCLUDE_DIRS})
link_directories (${GTK2_LIBRARY_DIRS})
# Add other flags to the compiler
add_definitions (${GTK2_CFLAGS_OTHER})
pkg_check_modules (GETTEXT REQUIRED)
add_definitions("-DGETTEXT_PACKAGE=\"${PROJECT_NAME}\"")
find_package(ZLIB)
include(GNUInstallDirs)
add_definitions("-DPACKAGE_DATA_DIR=\"${CMAKE_INSTALL_FULL_DATADIR}\"")
add_definitions("-DPACKAGE=\"${PROJECT_NAME}\"")
find_package(JSON-C)
if (JSON-C_FOUND)
set(JSON-C_LIBRARIES json-c::json-c)
else()
pkg_check_modules(JSON-C json-c)
endif()
if (JSON-C_FOUND)
set(JSON_FILES src/json_interface.c src/json_serialize.c)
add_definitions("-DENABLE_JSON")
include_directories (${JSON-C_INCLUDE_DIRS})
link_directories (${JSON-C_LIBRARY_DIRS})
include(CheckSymbolExists)
set(CMAKE_REQUIRED_LIBRARIES ${JSON-C_LIBRARIES})
check_symbol_exists(json_object_new_array_ext "json-c/json.h"
HAVE_JSON_OBJECT_NEW_ARRAY_EXT)
if (HAVE_JSON_OBJECT_NEW_ARRAY_EXT)
add_definitions("-DHAVE_JSON_OBJECT_NEW_ARRAY_EXT")
endif()
endif()
add_executable(bygfoot WIN32
src/bet.c src/bet.h src/bet_struct.h
src/bygfoot.c src/bygfoot.h
src/callback_func.c src/callback_func.h
src/callbacks.c src/callbacks.h
src/cup.c src/cup.h src/cup_struct.h
src/debug.c src/debug.h
src/enums.h
src/file.c src/file.h
src/finance.c src/finance.h
src/fixture.c src/fixture.h
src/free.c src/free.h
src/game.c src/game.h
src/game_gui.c src/game_gui.h
src/gui.c src/gui.h
src/interface.c src/interface.h
src/job.c src/job.h src/job_struct.h
src/language.c src/language.h
src/league.c src/league.h src/league_struct.h
src/lg_commentary.c src/lg_commentary.h src/lg_commentary_struct.h
src/live_game.c src/live_game.h
src/load_save.c src/load_save.h
src/main.c src/main.h
src/maths.c src/maths.h
src/misc.c src/misc.h
src/misc2_callback_func.c src/misc2_callback_func.h
src/misc2_callbacks.c src/misc2_callbacks.h
src/misc2_interface.c src/misc2_interface.h
src/misc3_callbacks.c src/misc3_callbacks.h
src/misc3_interface.c src/misc3_interface.h
src/misc_callback_func.c src/misc_callback_func.h
src/misc_callbacks.c src/misc_callbacks.h
src/misc_interface.c src/misc_interface.h
src/name.c src/name.h src/name_struct.h
src/news.c src/news.h
src/option.c src/option.h
src/option_gui.c src/option_gui.h
src/options_callbacks.c src/options_callbacks.h
src/options_interface.c src/options_interface.h
src/player.c src/player.h
src/start_end.c src/start_end.h
src/stat.c src/stat.h src/stat_struct.h
src/strategy.c src/strategy.h src/strategy_struct.h
src/support.c src/support.h
src/table.c src/table.h src/table_struct.h
src/team.c src/team.h
src/training.c src/training.h
src/training_callbacks.c src/training_callbacks.h
src/training_interface.c src/training_interface.h
src/training_struct.h
src/transfer.c src/transfer.h src/transfer_struct.h
src/treeview.c src/treeview.h
src/treeview2.c src/treeview2.h
src/treeview_helper.c src/treeview_helper.h
src/user.c src/user.h
src/variables.h
src/window.c src/window.h
src/xml.c src/xml.h
src/xml_country.c src/xml_country.h
src/xml_cup.c src/xml_cup.h
src/xml_league.c src/xml_league.h
src/xml_lg_commentary.c src/xml_lg_commentary.h
src/xml_loadsave_cup.c src/xml_loadsave_cup.h
src/xml_loadsave_fixtures.c src/xml_loadsave_fixtures.h
src/xml_loadsave_jobs.c src/xml_loadsave_jobs.h
src/xml_loadsave_league.c src/xml_loadsave_league.h
src/xml_loadsave_league_stat.c src/xml_loadsave_league_stat.h
src/xml_loadsave_leagues_cups.c src/xml_loadsave_leagues_cups.h
src/xml_loadsave_live_game.c src/xml_loadsave_live_game.h
src/xml_loadsave_misc.c src/xml_loadsave_misc.h
src/xml_loadsave_newspaper.c src/xml_loadsave_newspaper.h
src/xml_loadsave_players.c src/xml_loadsave_players.h
src/xml_loadsave_season_stats.c src/xml_loadsave_season_stats.h
src/xml_loadsave_table.c src/xml_loadsave_table.h
src/xml_loadsave_teams.c src/xml_loadsave_teams.h
src/xml_loadsave_transfers.c src/xml_loadsave_transfers.h
src/xml_loadsave_users.c src/xml_loadsave_users.h
src/xml_mmatches.c src/xml_mmatches.h
src/xml_name.c src/xml_name.h
src/xml_news.c src/xml_news.h
src/xml_strategy.c src/xml_strategy.h
src/xml_team.c src/xml_team.h
src/youth_academy.c src/youth_academy.h
src/zip/unzip.c src/zip/unzip.h
src/zip/zip.c src/zip/zip.h
${JSON_FILES}
)
# Some gtk headers use deprecated glib features, so disable this warning
# since we can't do anything about it.
# Newer versions of gcc and clang enable fno-common by default and
# this won't work with the global variables in bygfoot.
target_compile_options(bygfoot PRIVATE
-Wno-deprecated-declarations
-fcommon)
# Link the target to the GTK+ libraries
target_link_libraries (bygfoot ${GTK2_LIBRARIES} ${GLIB_LIBRARIES} m
${ZLIB_LIBRARIES} ${JSON-C_LIBRARIES})
install(TARGETS bygfoot RUNTIME DESTINATION bin)
install(DIRECTORY support_files DESTINATION
${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME})
find_package(Gettext)
if (GETTEXT_FOUND)
set (languages bg da de el es fr it nl pl pt_BR pt_PT ro sv tr zh)
foreach (lang ${languages})
GETTEXT_PROCESS_PO_FILES(${lang} ALL PO_FILES po/${lang}.po)
install(FILES ${CMAKE_BINARY_DIR}/${lang}.gmo DESTINATION
${CMAKE_INSTALL_LOCALEDIR}/${lang}/LC_MESSAGES/ RENAME
bygfoot.mo)
endforeach()
endif()
add_custom_command(TARGET bygfoot POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_directory
${CMAKE_SOURCE_DIR}/support_files
${CMAKE_BINARY_DIR}/support_files)