mirror of
https://github.com/KingDuckZ/dindexer.git
synced 2025-08-12 14:29:50 +00:00
Add an option to cmake to package resources in a qrc.
This commit is contained in:
parent
44706da689
commit
72fa33adbc
3 changed files with 25 additions and 5 deletions
|
@ -1,17 +1,22 @@
|
||||||
project(${bare_name}-gui CXX)
|
project(${bare_name}-gui CXX)
|
||||||
|
|
||||||
|
option(DINDEXER_ENABLE_QRC "Bundle Qt5 resources in the final binary" OFF)
|
||||||
|
|
||||||
set_switchable(PREFIX DINDEXER INFIX INST NAME QML_PATH
|
set_switchable(PREFIX DINDEXER INFIX INST NAME QML_PATH
|
||||||
ONVALUE "share/${bare_name}/qml" CACHE STRING "Path to the directory containing the qml files needed by ${bare_name} gui"
|
ONVALUE "share/${bare_name}/qml" CACHE STRING "Path to the directory containing the qml files needed by ${bare_name} gui"
|
||||||
OFFVALUE "resources/qml" CACHE STRING "Path to the directory containing the qml files needed by ${bare_name} gui"
|
OFFVALUE "resources/qml" CACHE STRING "Path to the directory containing the qml files needed by ${bare_name} gui"
|
||||||
)
|
)
|
||||||
|
|
||||||
set(CMAKE_AUTOMOC ON)
|
set(CMAKE_AUTOMOC ON)
|
||||||
|
set(CMAKE_AUTORCC ON)
|
||||||
|
find_package(Qt5Core 5.1 REQUIRED)
|
||||||
find_package(Qt5Qml 5.1 REQUIRED)
|
find_package(Qt5Qml 5.1 REQUIRED)
|
||||||
find_package(Qt5Widgets 5.1 REQUIRED)
|
find_package(Qt5Widgets 5.1 REQUIRED)
|
||||||
|
|
||||||
add_executable(${PROJECT_NAME}
|
add_executable(${PROJECT_NAME}
|
||||||
main.cpp
|
main.cpp
|
||||||
searcher.cpp
|
searcher.cpp
|
||||||
|
$<$<AND:$<CONFIG:Release>,$<BOOL:${DINDEXER_ENABLE_QRC}>>:reslist.qrc>
|
||||||
)
|
)
|
||||||
|
|
||||||
set(qml_files
|
set(qml_files
|
||||||
|
@ -30,18 +35,22 @@ target_link_libraries(${PROJECT_NAME}
|
||||||
PRIVATE ${bare_name}-common
|
PRIVATE ${bare_name}-common
|
||||||
PRIVATE Qt5::Qml
|
PRIVATE Qt5::Qml
|
||||||
PRIVATE Qt5::Widgets
|
PRIVATE Qt5::Widgets
|
||||||
|
PRIVATE Qt5::Core
|
||||||
PRIVATE glob2regex
|
PRIVATE glob2regex
|
||||||
)
|
)
|
||||||
|
|
||||||
string(REPLACE "${bare_name}-" "" ACTION_NAME "${PROJECT_NAME}")
|
string(REPLACE "${bare_name}-" "" ACTION_NAME "${PROJECT_NAME}")
|
||||||
target_compile_definitions(${PROJECT_NAME}
|
target_compile_definitions(${PROJECT_NAME}
|
||||||
PRIVATE ACTION_NAME="${ACTION_NAME}"
|
PRIVATE ACTION_NAME="${ACTION_NAME}"
|
||||||
|
PRIVATE DIN_QRC_ENABLED=$<AND:$<CONFIG:Release>,$<BOOL:${DINDEXER_ENABLE_QRC}>>
|
||||||
)
|
)
|
||||||
|
|
||||||
get_directory_property(clean_qml_list ADDITIONAL_MAKE_CLEAN_FILES)
|
get_directory_property(clean_qml_list ADDITIONAL_MAKE_CLEAN_FILES)
|
||||||
foreach(current_qml ${qml_files})
|
foreach(current_qml ${qml_files})
|
||||||
get_filename_component(qml_basename "${current_qml}" NAME)
|
get_filename_component(qml_basename "${current_qml}" NAME)
|
||||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/${current_qml}" "${CMAKE_BINARY_DIR}/${DINDEXER_CURR_QML_PATH}/${qml_basename}" COPYONLY)
|
if (NOT DINDEXER_ENABLE_QRC)
|
||||||
|
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/${current_qml}" "${CMAKE_BINARY_DIR}/${DINDEXER_CURR_QML_PATH}/${qml_basename}" COPYONLY)
|
||||||
|
endif()
|
||||||
list(APPEND clean_qml_list "${CMAKE_BINARY_DIR}/${DINDEXER_CURR_QML_PATH}/${qml_basename}")
|
list(APPEND clean_qml_list "${CMAKE_BINARY_DIR}/${DINDEXER_CURR_QML_PATH}/${qml_basename}")
|
||||||
endforeach()
|
endforeach()
|
||||||
set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${clean_qml_list}")
|
set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${clean_qml_list}")
|
||||||
|
@ -59,4 +68,6 @@ install(TARGETS ${PROJECT_NAME}
|
||||||
RUNTIME DESTINATION ${ACTIONS_PATH_INSTALL}
|
RUNTIME DESTINATION ${ACTIONS_PATH_INSTALL}
|
||||||
ARCHIVE DESTINATION lib/static
|
ARCHIVE DESTINATION lib/static
|
||||||
)
|
)
|
||||||
install(FILES ${qml_files} DESTINATION "${DINDEXER_CURR_QML_PATH}")
|
if (NOT DINDEXER_ENABLE_QRC)
|
||||||
|
install(FILES ${qml_files} DESTINATION "${DINDEXER_CURR_QML_PATH}")
|
||||||
|
endif()
|
||||||
|
|
|
@ -20,10 +20,14 @@
|
||||||
|
|
||||||
#cmakedefine DINDEXER_INST_MODE
|
#cmakedefine DINDEXER_INST_MODE
|
||||||
|
|
||||||
#if defined(DINDEXER_INST_MODE)
|
#if DIN_QRC_ENABLED
|
||||||
# define QML_PATH "@CMAKE_INSTALL_PREFIX@/@DINDEXER_CURR_QML_PATH@"
|
# define QML_PATH ":"
|
||||||
#else
|
#else
|
||||||
# define QML_PATH "@DINDEXER_CURR_QML_PATH@"
|
# if defined(DINDEXER_INST_MODE)
|
||||||
|
# define QML_PATH "@CMAKE_INSTALL_PREFIX@/@DINDEXER_CURR_QML_PATH@"
|
||||||
|
# else
|
||||||
|
# define QML_PATH "@DINDEXER_CURR_QML_PATH@"
|
||||||
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
5
src/gui/reslist.qrc
Normal file
5
src/gui/reslist.qrc
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
<!DOCTYPE RCC><RCC version="1.0">
|
||||||
|
<qresource>
|
||||||
|
<file>qml/mainwin.qml</file>
|
||||||
|
</qresource>
|
||||||
|
</RCC>
|
Loading…
Add table
Add a link
Reference in a new issue