summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt45
1 files changed, 19 insertions, 26 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ac86d71a..41c1b392 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -18,7 +18,7 @@
18cmake_minimum_required (VERSION 3.9) 18cmake_minimum_required (VERSION 3.9)
19 19
20project (Lagrange 20project (Lagrange
21 VERSION 1.8.1 21 VERSION 1.9.0
22 DESCRIPTION "A Beautiful Gemini Client" 22 DESCRIPTION "A Beautiful Gemini Client"
23 LANGUAGES C 23 LANGUAGES C
24) 24)
@@ -29,7 +29,7 @@ if (IOS)
29 set (IOS_BUILD_DATE "2021-10-23") 29 set (IOS_BUILD_DATE "2021-10-23")
30endif () 30endif ()
31 31
32# Default that depend on environment. 32# Defaults that depend on environment.
33set (DEFAULT_RESIZE_DRAW ON) 33set (DEFAULT_RESIZE_DRAW ON)
34if (HAIKU) 34if (HAIKU)
35 set (DEFAULT_RESIZE_DRAW OFF) 35 set (DEFAULT_RESIZE_DRAW OFF)
@@ -52,20 +52,17 @@ option (ENABLE_MPG123 "Use mpg123 for decoding MPEG audio" ON)
52option (ENABLE_POPUP_MENUS "Use popup windows for context menus (if OFF, menus are confined inside main window)" ON) 52option (ENABLE_POPUP_MENUS "Use popup windows for context menus (if OFF, menus are confined inside main window)" ON)
53option (ENABLE_RELATIVE_EMBED "Resources should always be found via relative path" OFF) 53option (ENABLE_RELATIVE_EMBED "Resources should always be found via relative path" OFF)
54option (ENABLE_RESIZE_DRAW "Force window to redraw during resizing" ${DEFAULT_RESIZE_DRAW}) 54option (ENABLE_RESIZE_DRAW "Force window to redraw during resizing" ${DEFAULT_RESIZE_DRAW})
55option (ENABLE_RESOURCE_EMBED "Embed resources inside the executable" OFF)
56option (ENABLE_WEBP "Use libwebp to decode .webp images (via pkg-config)" ON) 55option (ENABLE_WEBP "Use libwebp to decode .webp images (via pkg-config)" ON)
57option (ENABLE_WINDOWPOS_FIX "Set position after showing window (workaround for SDL bug)" OFF) 56option (ENABLE_WINDOWPOS_FIX "Set position after showing window (workaround for SDL bug)" OFF)
58option (ENABLE_X11_SWRENDER "Use software rendering (X11)" OFF) 57option (ENABLE_X11_SWRENDER "Use software rendering (X11)" OFF)
59 58
60include (BuildType.cmake) 59include (BuildType.cmake)
61include (res/Embed.cmake) 60include (Resources.cmake)
62include (res/Fontpack.cmake)
63include (Depends.cmake) 61include (Depends.cmake)
64 62
65# Package resources. 63# Package resources.
66message (STATUS "Preparing resources...") 64message (STATUS "Preparing resources...")
67make_fontpack (res/default.fontpack) 65set (RESOURCES
68set (EMBED_RESOURCES
69 res/about/about.gmi 66 res/about/about.gmi
70 res/about/help.gmi 67 res/about/help.gmi
71 res/about/lagrange.gmi 68 res/about/lagrange.gmi
@@ -93,12 +90,14 @@ set (EMBED_RESOURCES
93 res/lang/zh_Hans.bin 90 res/lang/zh_Hans.bin
94 res/lang/zh_Hant.bin 91 res/lang/zh_Hant.bin
95 res/shadow.png 92 res/shadow.png
96 ${CMAKE_BINARY_DIR}/default.fontpack 93 res/fontpack.ini
97) 94)
95file (GLOB FONTS RELATIVE ${CMAKE_SOURCE_DIR} res/fonts/*)
96list (APPEND RESOURCES ${FONTS})
98if ((UNIX AND NOT APPLE) OR MSYS) 97if ((UNIX AND NOT APPLE) OR MSYS)
99 list (APPEND EMBED_RESOURCES res/lagrange-64.png) 98 list (APPEND RESOURCES res/lagrange-64.png)
100endif () 99endif ()
101embed_make (${EMBED_RESOURCES}) 100make_resources (${CMAKE_CURRENT_BINARY_DIR}/resources.lgr ${RESOURCES})
102 101
103set (EMB_BIN ${CMAKE_CURRENT_BINARY_DIR}/resources.lgr) 102set (EMB_BIN ${CMAKE_CURRENT_BINARY_DIR}/resources.lgr)
104set_source_files_properties (${EMB_BIN} PROPERTIES MACOSX_PACKAGE_LOCATION Resources) 103set_source_files_properties (${EMB_BIN} PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
@@ -143,6 +142,8 @@ set (SOURCES
143 src/periodic.h 142 src/periodic.h
144 src/prefs.c 143 src/prefs.c
145 src/prefs.h 144 src/prefs.h
145 src/resources.c
146 src/resources.h
146 src/sitespec.c 147 src/sitespec.c
147 src/sitespec.h 148 src/sitespec.h
148 src/stb_image.h 149 src/stb_image.h
@@ -218,8 +219,6 @@ set (SOURCES
218 res/about/lagrange.gmi 219 res/about/lagrange.gmi
219 res/about/license.gmi 220 res/about/license.gmi
220 res/about/version.gmi 221 res/about/version.gmi
221 ${CMAKE_CURRENT_BINARY_DIR}/embedded.c
222 ${CMAKE_CURRENT_BINARY_DIR}/embedded.h
223 ${CMAKE_CURRENT_BINARY_DIR}/resources.lgr 222 ${CMAKE_CURRENT_BINARY_DIR}/resources.lgr
224) 223)
225if (ENABLE_IPC) 224if (ENABLE_IPC)
@@ -418,9 +417,7 @@ if (MSYS)
418 if (TARGET PkgConfig::MPG123) 417 if (TARGET PkgConfig::MPG123)
419 install (PROGRAMS ${MPG123_LIBDIR}/../bin/msys-mpg123-0.dll DESTINATION .) 418 install (PROGRAMS ${MPG123_LIBDIR}/../bin/msys-mpg123-0.dll DESTINATION .)
420 endif () 419 endif ()
421 if (NOT ENABLE_RESOURCE_EMBED) 420 install (FILES ${EMB_BIN} DESTINATION .)
422 install (FILES ${EMB_BIN} DESTINATION .)
423 endif ()
424 install (PROGRAMS 421 install (PROGRAMS
425 ${SDL2_LIBDIR}/SDL2.dll 422 ${SDL2_LIBDIR}/SDL2.dll
426 res/urlopen.bat 423 res/urlopen.bat
@@ -431,11 +428,9 @@ if (MSYS)
431 endif () 428 endif ()
432elseif (HAIKU) 429elseif (HAIKU)
433 install (TARGETS app DESTINATION .) 430 install (TARGETS app DESTINATION .)
434 if (NOT ENABLE_RESOURCE_EMBED) 431 target_compile_definitions (app PUBLIC
435 target_compile_definitions (app PUBLIC 432 LAGRANGE_EMB_BIN="${CMAKE_INSTALL_PREFIX}/resources.lgr")
436 LAGRANGE_EMB_BIN="${CMAKE_INSTALL_PREFIX}/resources.lgr") 433 install (FILES ${EMB_BIN} DESTINATION .)
437 install (FILES ${EMB_BIN} DESTINATION .)
438 endif ()
439elseif (UNIX AND NOT APPLE) 434elseif (UNIX AND NOT APPLE)
440 set_target_properties (app PROPERTIES 435 set_target_properties (app PROPERTIES
441 INSTALL_RPATH_USE_LINK_PATH YES 436 INSTALL_RPATH_USE_LINK_PATH YES
@@ -461,11 +456,9 @@ MimeType=x-scheme-handler/gemini;x-scheme-handler/gopher;
461 install (FILES res/fi.skyjake.Lagrange.appdata.xml 456 install (FILES res/fi.skyjake.Lagrange.appdata.xml
462 DESTINATION share/metainfo 457 DESTINATION share/metainfo
463 ) 458 )
464 if (NOT ENABLE_RESOURCE_EMBED) 459 if (NOT ENABLE_RELATIVE_EMBED)
465 if (NOT ENABLE_RELATIVE_EMBED) 460 target_compile_definitions (app PUBLIC
466 target_compile_definitions (app PUBLIC 461 LAGRANGE_EMB_BIN="${CMAKE_INSTALL_PREFIX}/share/lagrange/resources.lgr")
467 LAGRANGE_EMB_BIN="${CMAKE_INSTALL_PREFIX}/share/lagrange/resources.lgr")
468 endif ()
469 install (FILES ${EMB_BIN} DESTINATION share/lagrange)
470 endif () 462 endif ()
463 install (FILES ${EMB_BIN} DESTINATION share/lagrange)
471endif () 464endif ()