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})