Mercurial > minori
comparison CMakeLists.txt @ 109:79714c95a145
*: add translation files and locale files
I forgot to add these in the last commit :p
also now you have to ask cmake to update the translations
because before the ts files were not tracked (obviously)
author | Paper <mrpapersonic@gmail.com> |
---|---|
date | Mon, 06 Nov 2023 01:51:44 -0500 |
parents | 2004b41d4a59 |
children | 2f3ae79adb02 |
comparison
equal
deleted
inserted
replaced
108:2004b41d4a59 | 109:79714c95a145 |
---|---|
10 set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}") | 10 set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}") |
11 | 11 |
12 option(BUILD_SHARED_LIBS "Build using shared libraries" ON) | 12 option(BUILD_SHARED_LIBS "Build using shared libraries" ON) |
13 option(USE_QT6 "Force build with Qt 6" OFF) | 13 option(USE_QT6 "Force build with Qt 6" OFF) |
14 option(USE_QT5 "Force build with Qt 5" OFF) | 14 option(USE_QT5 "Force build with Qt 5" OFF) |
15 option(UPDATE_TRANSLATIONS "Update *.ts translation files" OFF) | |
15 | 16 |
16 add_subdirectory(dep/anitomy) | 17 add_subdirectory(dep/anitomy) |
17 add_subdirectory(dep/animia) | 18 add_subdirectory(dep/animia) |
18 add_subdirectory(dep/pugixml) | 19 add_subdirectory(dep/pugixml) |
19 | 20 |
20 # Fix for mingw64 | 21 # Fix for mingw64 |
21 list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES ".dll.a" ".a") | 22 list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES ".dll.a" ".a") |
22 | 23 |
23 if (USE_QT6) | 24 if (USE_QT6) |
24 set(QT_VERSION_MAJOR 6) | 25 set(QT_VERSION_MAJOR 6) |
25 elseif(USE_Qt5) | 26 elseif(USE_QT5) |
26 set(QT_VERSION_MAJOR 5) | 27 set(QT_VERSION_MAJOR 5) |
27 else() | 28 else() |
28 find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core) | 29 find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core) |
29 endif() | 30 endif() |
30 | 31 |
121 ) | 122 ) |
122 | 123 |
123 set_source_files_properties(${TS_FILES} PROPERTIES OUTPUT_LOCATION "${CMAKE_CURRENT_BINARY_DIR}/rc/locale") | 124 set_source_files_properties(${TS_FILES} PROPERTIES OUTPUT_LOCATION "${CMAKE_CURRENT_BINARY_DIR}/rc/locale") |
124 | 125 |
125 # dumb little hack to get this working on Qt5 and Qt6 | 126 # 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 if (UPDATE_TRANSLATIONS) |
128 cmake_language(CALL qt${QT_VERSION_MAJOR}_create_translation ${SRC_FILES} ${TS_FILES} OPTIONS "-I${CMAKE_CURRENT_SOURCE_DIR}/include") | |
129 endif() | |
127 cmake_language(CALL qt${QT_VERSION_MAJOR}_add_translation QM_FILES ${TS_FILES}) | 130 cmake_language(CALL qt${QT_VERSION_MAJOR}_add_translation QM_FILES ${TS_FILES}) |
128 list(APPEND SRC_FILES ${QM_FILES}) | 131 add_custom_target(translation ALL SOURCES ${QM_FILES} DEPENDS ${TS_FILES}) |
129 | 132 |
130 function(qt_create_resource_file outfile) | 133 function(qt_create_resource_file outfile) |
131 set(QRC "<!DOCTYPE rcc><RCC version=\"1.0\">\n\t<qresource>\n") | 134 set(QRC "<!DOCTYPE rcc><RCC version=\"1.0\">\n\t<qresource>\n") |
132 get_filename_component(DIR ${outfile} DIRECTORY) | 135 get_filename_component(DIR ${outfile} DIRECTORY) |
133 foreach (qm ${ARGN}) | 136 foreach (qm ${ARGN}) |
137 string(APPEND QRC "\t</qresource>\n</RCC>\n") | 140 string(APPEND QRC "\t</qresource>\n</RCC>\n") |
138 file(WRITE ${outfile} ${QRC}) | 141 file(WRITE ${outfile} ${QRC}) |
139 endfunction() | 142 endfunction() |
140 | 143 |
141 qt_create_resource_file("${CMAKE_CURRENT_BINARY_DIR}/rc/locale.qrc" ${QM_FILES}) | 144 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") | 145 add_custom_target(resources DEPENDS translation SOURCES "${CMAKE_CURRENT_BINARY_DIR}/rc/locale.qrc") |
143 | 146 |
144 # This is also used in the Win32 rc file | 147 # This is also used in the Win32 rc file |
145 set(RC_INFO_STRING "A lightweight anime tracker built with Qt.") | 148 set(RC_INFO_STRING "A lightweight anime tracker built with Qt.") |
146 | 149 |
147 if(APPLE) # Mac OS X (or OS X (or macOS)) | 150 if(APPLE) # Mac OS X (or OS X (or macOS)) |
171 ${CMAKE_CURRENT_BINARY_DIR}/rc/version.rc | 174 ${CMAKE_CURRENT_BINARY_DIR}/rc/version.rc |
172 ) | 175 ) |
173 endif() | 176 endif() |
174 | 177 |
175 add_executable(minori WIN32 MACOSX_BUNDLE ${SRC_FILES}) | 178 add_executable(minori WIN32 MACOSX_BUNDLE ${SRC_FILES}) |
179 add_dependencies(minori resources) | |
176 set_property(TARGET minori PROPERTY CXX_STANDARD 11) | 180 set_property(TARGET minori PROPERTY CXX_STANDARD 11) |
177 set_property(TARGET minori PROPERTY AUTOMOC ON) | 181 set_property(TARGET minori PROPERTY AUTOMOC ON) |
178 set_property(TARGET minori PROPERTY AUTORCC ON) | 182 set_property(TARGET minori PROPERTY AUTORCC ON) |
179 | 183 |
180 target_include_directories(minori PUBLIC ${CURL_INCLUDE_DIRS} PRIVATE ${INCLUDE}) | 184 target_include_directories(minori PUBLIC ${CURL_INCLUDE_DIRS} PRIVATE ${INCLUDE}) |