~cypheon/elfelli

elfelli/CMakeLists.txt -rw-r--r-- 2.2 KiB
8d5643a9 — Johann Rudloff [ci] Setup CI build with sourcehut 2 years ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
cmake_minimum_required(VERSION 3.12)
project( elfelli CXX )

option(ELFELLI_PROFILING "enable profiling" OFF)

include(FindEXPAT)
include(FindGettext)
include(FindPkgConfig)
include(GNUInstallDirs)

pkg_check_modules(GTKMM REQUIRED gtkmm-2.4>=2.18 librsvg-2.0)

set (CMAKE_CXX_STANDARD 11)

add_compile_options(
  "-Wall" "-Wpedantic" "-Wextra"
  )
add_compile_definitions(GTKMM_DISABLE_DEPRECATED)
add_compile_options(${GTKMM_CFLAGS})
include_directories(${GTKMM_INCLUDE_DIRS})
link_directories(${GTKMM_LIBRARY_DIRS})
add_executable( elfelli
  src/Application.cpp
  src/Canvas.cpp
  src/Main.cpp
  src/Simulation.cpp
  src/SimulationCanvas.cpp
  src/Toolbox.cpp
  src/XmlLoader.cpp
  src/XmlWriter.cpp
  )

set(APP_DATADIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATADIR}/elfelli")
set(APP_LOCALEDIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LOCALEDIR}")
add_compile_definitions(DATADIR="${APP_DATADIR}")
add_compile_definitions(LOCALEDIR="${APP_LOCALEDIR}")
if(ELFELLI_PROFILING)
  add_compile_definitions(PROFILING)
endif()

target_link_libraries(elfelli
  ${GTKMM_LIBRARIES}
  ${EXPAT_LIBRARIES}
  )

install(TARGETS elfelli
  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
  )
install(DIRECTORY data/
  DESTINATION ${CMAKE_INSTALL_DATADIR}/elfelli
  FILES_MATCHING
  PATTERN "*.svg"
  PATTERN "*.xml"
  )
install(FILES data/elfelli.desktop
  DESTINATION ${CMAKE_INSTALL_DATADIR}/applications
  )
install(FILES data/elfelli-logo.svg
  DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/scalable/apps
  RENAME elfelli.svg
  )

find_program(RSVG
  rsvg_convert NAMES rsvg-convert
  )

add_custom_command(
  OUTPUT data/elfelli_48.png
  COMMAND ${CMAKE_COMMAND} -E make_directory data
  COMMAND "${RSVG_CONVERT}" ARGS -w 48 -h 48 -f png -o data/elfelli_48.png ${CMAKE_CURRENT_SOURCE_DIR}/data/elfelli-logo.svg
  MAIN_DEPENDENCY data/elfelli-logo.svg
  )
add_custom_target( icon ALL DEPENDS data/elfelli_48.png )
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/data/elfelli_48.png
  DESTINATION share/icons/hicolor/48x48/apps
  RENAME elfelli.png
  )

gettext_process_po_files(de
  ALL
  PO_FILES po/de.po
  )
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/de.gmo
  DESTINATION ${CMAKE_INSTALL_LOCALEDIR}/de/LC_MESSAGES
  RENAME elfelli.mo
  )