Mercurial > minori
annotate CMakeLists.txt @ 108:2004b41d4a59
*: huge commit
1. WORKING LOCALIZATION + translation for Spanish and British English
2. idk like 2 changes for the dark theme :)
| author | Paper <mrpapersonic@gmail.com> |
|---|---|
| date | Sun, 05 Nov 2023 23:31:49 -0500 |
| parents | 6d8da6e64d61 |
| children | 79714c95a145 |
| rev | line source |
|---|---|
| 108 | 1 cmake_minimum_required(VERSION 3.18) |
| 103 | 2 project(minori LANGUAGES CXX VERSION 0.1.0) |
|
17
db445ce42057
cmake: only enable OBJCXX on OS X
Paper <mrpapersonic@gmail.com>
parents:
15
diff
changeset
|
3 |
|
db445ce42057
cmake: only enable OBJCXX on OS X
Paper <mrpapersonic@gmail.com>
parents:
15
diff
changeset
|
4 if(APPLE) |
|
db445ce42057
cmake: only enable OBJCXX on OS X
Paper <mrpapersonic@gmail.com>
parents:
15
diff
changeset
|
5 enable_language(OBJCXX) |
|
db445ce42057
cmake: only enable OBJCXX on OS X
Paper <mrpapersonic@gmail.com>
parents:
15
diff
changeset
|
6 endif() |
| 2 | 7 |
| 64 | 8 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}") |
| 9 set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}") | |
| 10 set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}") | |
| 11 | |
| 12 option(BUILD_SHARED_LIBS "Build using shared libraries" ON) | |
| 108 | 13 option(USE_QT6 "Force build with Qt 6" OFF) |
| 14 option(USE_QT5 "Force build with Qt 5" OFF) | |
| 64 | 15 |
| 9 | 16 add_subdirectory(dep/anitomy) |
| 64 | 17 add_subdirectory(dep/animia) |
|
55
d10b6c6b432e
add xml lib, we will need to use it eventually
Paper <mrpapersonic@gmail.com>
parents:
54
diff
changeset
|
18 add_subdirectory(dep/pugixml) |
| 9 | 19 |
| 12 | 20 # Fix for mingw64 |
| 21 list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES ".dll.a" ".a") | |
| 22 | |
| 108 | 23 if (USE_QT6) |
| 24 set(QT_VERSION_MAJOR 6) | |
| 25 elseif(USE_Qt5) | |
| 26 set(QT_VERSION_MAJOR 5) | |
| 62 | 27 else() |
| 108 | 28 find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core) |
| 62 | 29 endif() |
| 108 | 30 |
| 31 find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets LinguistTools) | |
| 32 | |
| 12 | 33 find_package(CURL REQUIRED) |
| 34 | |
| 35 set(LIBRARIES | |
| 36 ${CURL_LIBRARIES} | |
| 108 | 37 ${Qt${QT_VERSION_MAJOR}Widgets_LIBRARIES} |
| 12 | 38 anitomy |
| 64 | 39 animia |
| 12 | 40 ) |
| 41 | |
| 42 # We need Cocoa for some OS X stuff | |
| 43 if(APPLE) | |
| 44 find_library(COCOA_LIBRARY Cocoa) | |
| 45 list(APPEND LIBRARIES ${COCOA_LIBRARY}) | |
| 46 endif() | |
| 47 | |
| 2 | 48 set(SRC_FILES |
| 9 | 49 # Main entrypoint |
| 81 | 50 src/main.cc |
| 9 | 51 |
| 52 # Core files and datatype declarations... | |
| 81 | 53 src/core/anime.cc |
| 54 src/core/anime_db.cc | |
| 55 src/core/config.cc | |
| 56 src/core/date.cc | |
| 57 src/core/filesystem.cc | |
| 58 src/core/http.cc | |
| 59 src/core/json.cc | |
| 60 src/core/strings.cc | |
| 61 src/core/time.cc | |
| 9 | 62 |
| 46 | 63 # Main window |
| 81 | 64 src/gui/window.cc |
| 102 | 65 src/gui/theme.cc |
| 108 | 66 src/gui/locale.cc |
| 46 | 67 |
| 68 # Main window pages | |
| 81 | 69 src/gui/pages/anime_list.cc |
| 70 src/gui/pages/now_playing.cc | |
| 71 src/gui/pages/statistics.cc | |
| 72 src/gui/pages/search.cc | |
| 73 src/gui/pages/seasons.cc | |
| 74 src/gui/pages/torrents.cc | |
| 75 src/gui/pages/history.cc | |
|
54
466ac9870df9
add stub pages (to be implemented)
Paper <mrpapersonic@gmail.com>
parents:
51
diff
changeset
|
76 |
| 46 | 77 # Custom widgets |
| 81 | 78 src/gui/widgets/anime_info.cc |
| 79 src/gui/widgets/poster.cc | |
| 80 src/gui/widgets/clickable_label.cc | |
| 81 src/gui/widgets/sidebar.cc | |
| 82 src/gui/widgets/text.cc | |
| 83 src/gui/widgets/optional_date.cc | |
| 9 | 84 |
| 85 # Dialogs | |
| 81 | 86 src/gui/dialog/about.cc |
| 87 src/gui/dialog/information.cc | |
| 88 src/gui/dialog/settings.cc | |
| 89 src/gui/dialog/settings/application.cc | |
| 90 src/gui/dialog/settings/services.cc | |
| 9 | 91 |
| 10 | 92 # Translate |
| 81 | 93 src/gui/translate/anime.cc |
| 94 src/gui/translate/anilist.cc | |
|
90
c4bb49c2f6eb
config: improve handling of vars
Paper <mrpapersonic@gmail.com>
parents:
82
diff
changeset
|
95 src/gui/translate/config.cc |
| 10 | 96 |
| 9 | 97 # Services (only AniList for now) |
| 81 | 98 src/services/services.cc |
| 99 src/services/anilist.cc | |
| 9 | 100 |
| 64 | 101 # Tracking |
|
82
8b65c417c225
*: fix old stuff, make video players and extensions constants
Paper <mrpapersonic@gmail.com>
parents:
81
diff
changeset
|
102 src/track/constants.cc |
| 81 | 103 src/track/media.cc |
| 64 | 104 |
| 9 | 105 # Qt resources |
| 2 | 106 rc/icons.qrc |
|
105
6d8da6e64d61
theme: add dark stylesheet, make it actually usable
Paper <mrpapersonic@gmail.com>
parents:
103
diff
changeset
|
107 rc/dark.qrc |
| 2 | 108 ) |
| 109 | |
| 108 | 110 set(INCLUDE |
| 111 include | |
| 112 dep/pugixml/src | |
| 113 dep/animia/include | |
| 114 dep/anitomy | |
| 115 dep | |
| 116 ) | |
| 117 | |
| 118 set(TS_FILES | |
| 119 rc/locale/en_GB.ts | |
| 120 rc/locale/es.ts | |
| 121 ) | |
| 122 | |
| 123 set_source_files_properties(${TS_FILES} PROPERTIES OUTPUT_LOCATION "${CMAKE_CURRENT_BINARY_DIR}/rc/locale") | |
| 124 | |
| 125 # dumb little hack to get this working on Qt5 and Qt6 | |
| 126 cmake_language(CALL qt${QT_VERSION_MAJOR}_create_translation ${SRC_FILES} ${TS_FILES} OPTIONS "-I${CMAKE_CURRENT_SOURCE_DIR}/include") | |
| 127 cmake_language(CALL qt${QT_VERSION_MAJOR}_add_translation QM_FILES ${TS_FILES}) | |
| 128 list(APPEND SRC_FILES ${QM_FILES}) | |
| 129 | |
| 130 function(qt_create_resource_file outfile) | |
| 131 set(QRC "<!DOCTYPE rcc><RCC version=\"1.0\">\n\t<qresource>\n") | |
| 132 get_filename_component(DIR ${outfile} DIRECTORY) | |
| 133 foreach (qm ${ARGN}) | |
| 134 file(RELATIVE_PATH name ${DIR} ${qm}) | |
| 135 string(APPEND QRC "\t\t<file>${name}</file>\n") | |
| 136 endforeach() | |
| 137 string(APPEND QRC "\t</qresource>\n</RCC>\n") | |
| 138 file(WRITE ${outfile} ${QRC}) | |
| 139 endfunction() | |
| 140 | |
| 141 qt_create_resource_file("${CMAKE_CURRENT_BINARY_DIR}/rc/locale.qrc" ${QM_FILES}) | |
| 142 list(APPEND SRC_FILES "${CMAKE_CURRENT_BINARY_DIR}/rc/locale.qrc") | |
| 143 | |
| 144 # This is also used in the Win32 rc file | |
| 103 | 145 set(RC_INFO_STRING "A lightweight anime tracker built with Qt.") |
| 146 | |
| 9 | 147 if(APPLE) # Mac OS X (or OS X (or macOS)) |
| 103 | 148 set(MACOSX_BUNDLE_BUNDLE_NAME "Minori") |
| 149 set(MACOSX_BUNDLE_BUNDLE_VERSION ${minori_VERSION}) | |
| 150 set(MACOSX_BUNDLE_COPYRIGHT "Copyright (C) Paper 2023") | |
| 151 set(MACOSX_BUNDLE_GUI_IDENTIFIER "org.eu.us.paper.minori") | |
| 152 set(MACOSX_BUNDLE_INFO_STRING ${RC_INFO_STRING}) | |
| 153 set(MACOSX_BUNDLE_ICON_FILE rc/osx/favicon.icns) | |
| 154 set(app_icon_osx "${CMAKE_CURRENT_SOURCE_DIR}/rc/osx/favicon.icns") | |
| 155 set_source_files_properties(${app_icon_osx} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources") | |
| 156 | |
| 5 | 157 list(APPEND SRC_FILES |
| 158 src/sys/osx/dark_theme.mm | |
| 159 src/sys/osx/filesystem.mm | |
| 103 | 160 ${app_icon_osx} |
| 5 | 161 ) |
| 9 | 162 elseif(WIN32) # Windows |
| 103 | 163 configure_file( |
| 164 ${CMAKE_CURRENT_SOURCE_DIR}/rc/win32/version.rc.in | |
| 165 ${CMAKE_CURRENT_BINARY_DIR}/rc/version.rc | |
| 166 @ONLY | |
| 167 ) | |
| 168 list(APPEND SRC_FILES | |
| 169 src/sys/win32/dark_theme.cc | |
| 170 rc/win32/resource.rc | |
| 171 ${CMAKE_CURRENT_BINARY_DIR}/rc/version.rc | |
| 172 ) | |
| 2 | 173 endif() |
| 174 | |
| 103 | 175 add_executable(minori WIN32 MACOSX_BUNDLE ${SRC_FILES}) |
| 63 | 176 set_property(TARGET minori PROPERTY CXX_STANDARD 11) |
| 11 | 177 set_property(TARGET minori PROPERTY AUTOMOC ON) |
| 178 set_property(TARGET minori PROPERTY AUTORCC ON) | |
| 2 | 179 |
| 108 | 180 target_include_directories(minori PUBLIC ${CURL_INCLUDE_DIRS} PRIVATE ${INCLUDE}) |
| 181 target_include_directories(minori PUBLIC ${Qt${QT_VERSION_MAJOR}Widgets_INCLUDE_DIRS}) | |
| 64 | 182 target_compile_options(minori PRIVATE -Wall -Wpedantic -Wextra -Wsuggest-override -Wold-style-cast) |
| 5 | 183 if(APPLE) |
| 11 | 184 target_compile_definitions(minori PUBLIC MACOSX) |
| 9 | 185 elseif(WIN32) |
| 11 | 186 target_compile_definitions(minori PUBLIC WIN32) |
| 5 | 187 endif() |
| 11 | 188 target_link_libraries(minori ${LIBRARIES}) |
