mirror of
https://github.com/edisionnano/QDiskInfo.git
synced 2026-03-07 20:09:55 +03:00
CMake Changes
Don't specify all .h, .cpp and .ui files independently, use wildcards instead Don't specify QDiskInfo many times, use the PROJECT_NAME variable instead Use qt_add_translations if Qt version is >=6.7, this should be able to also run lupdate but it doesn't; I'm investigating this
This commit is contained in:
@@ -20,19 +20,10 @@ else()
|
||||
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets)
|
||||
endif()
|
||||
|
||||
set(PROJECT_SOURCES
|
||||
src/main.cpp
|
||||
src/mainwindow.cpp
|
||||
src/mainwindow.h
|
||||
src/mainwindow.ui
|
||||
src/custombutton.h
|
||||
src/custombutton.cpp
|
||||
src/statusdot.h
|
||||
src/statusdot.cpp
|
||||
src/jsonparser.h
|
||||
src/jsonparser.cpp
|
||||
src/utils.h
|
||||
src/utils.cpp
|
||||
file(GLOB_RECURSE PROJECT_SOURCES
|
||||
src/*.h
|
||||
src/*.cpp
|
||||
src/*.ui
|
||||
src/resources.qrc
|
||||
)
|
||||
|
||||
@@ -42,7 +33,16 @@ endif()
|
||||
|
||||
if(ENABLE_TRANSLATIONS)
|
||||
file(GLOB TS_FILES "${CMAKE_SOURCE_DIR}/translations/*.ts")
|
||||
qt_add_translation(QM_FILES ${TS_FILES})
|
||||
if(QT_VERSION_MAJOR GREATER_EQUAL 6 AND QT_VERSION_MINOR GREATER_EQUAL 7)
|
||||
qt_add_translations(TARGETS ${PROJECT_NAME}
|
||||
TS_FILES ${TS_FILES}
|
||||
SOURCES ${PROJECT_SOURCES}
|
||||
QM_FILES_OUTPUT_VARIABLE QM_FILES
|
||||
LUPDATE_OPTIONS -no-obsolete -locations none
|
||||
)
|
||||
else()
|
||||
qt_add_translation(QM_FILES ${TS_FILES})
|
||||
endif()
|
||||
set(TRANSLATIONS_QRC "${CMAKE_BINARY_DIR}/translations.qrc")
|
||||
file(WRITE ${TRANSLATIONS_QRC} "<RCC>\n <qresource prefix=\"/translations\">\n")
|
||||
foreach(QM_FILE ${QM_FILES})
|
||||
@@ -53,19 +53,19 @@ if(ENABLE_TRANSLATIONS)
|
||||
list(APPEND PROJECT_SOURCES ${TRANSLATIONS_QRC})
|
||||
endif()
|
||||
|
||||
add_executable(QDiskInfo ${PROJECT_SOURCES})
|
||||
add_executable(${PROJECT_NAME} ${PROJECT_SOURCES})
|
||||
|
||||
target_compile_definitions(QDiskInfo PRIVATE
|
||||
PROJECT_VERSION_MAJOR=${QDiskInfo_VERSION_MAJOR}
|
||||
PROJECT_VERSION_MINOR=${QDiskInfo_VERSION_MINOR}
|
||||
target_compile_definitions(${PROJECT_NAME} PRIVATE
|
||||
PROJECT_VERSION_MAJOR=${${PROJECT_NAME}_VERSION_MAJOR}
|
||||
PROJECT_VERSION_MINOR=${${PROJECT_NAME}_VERSION_MINOR}
|
||||
ENABLE_TRANSLATIONS=$<BOOL:${ENABLE_TRANSLATIONS}>
|
||||
INCLUDE_OPTIONAL_RESOURCES=$<BOOL:${INCLUDE_OPTIONAL_RESOURCES}>
|
||||
CHARACTER_IS_RIGHT=$<BOOL:${CHARACTER_IS_RIGHT}>
|
||||
)
|
||||
|
||||
target_link_libraries(QDiskInfo PRIVATE Qt${QT_VERSION_MAJOR}::Widgets)
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE Qt${QT_VERSION_MAJOR}::Widgets)
|
||||
|
||||
set_target_properties(QDiskInfo PROPERTIES
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES
|
||||
${BUNDLE_ID_OPTION}
|
||||
MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
|
||||
MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
|
||||
@@ -74,18 +74,18 @@ set_target_properties(QDiskInfo PROPERTIES
|
||||
)
|
||||
|
||||
include(GNUInstallDirs)
|
||||
install(TARGETS QDiskInfo
|
||||
install(TARGETS ${PROJECT_NAME}
|
||||
BUNDLE DESTINATION .
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
)
|
||||
install(FILES "dist/QDiskInfo.desktop"
|
||||
install(FILES "dist/${PROJECT_NAME}.desktop"
|
||||
DESTINATION "share/applications")
|
||||
install(FILES "dist/QDiskInfo.svg"
|
||||
install(FILES "dist/${PROJECT_NAME}.svg"
|
||||
DESTINATION "share/icons/hicolor/scalable/apps")
|
||||
|
||||
if(QT_VERSION_MAJOR EQUAL 6)
|
||||
qt_finalize_executable(QDiskInfo)
|
||||
if(QT_VERSION_MAJOR GREATER_EQUAL 6)
|
||||
qt_finalize_executable(${PROJECT_NAME})
|
||||
endif()
|
||||
include(FeatureSummary)
|
||||
feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)
|
||||
|
||||
Reference in New Issue
Block a user