mirror of
https://github.com/KingDuckZ/dindexer.git
synced 2025-02-19 12:04:54 +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)
|
||||
|
||||
option(DINDEXER_ENABLE_QRC "Bundle Qt5 resources in the final binary" OFF)
|
||||
|
||||
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"
|
||||
OFFVALUE "resources/qml" CACHE STRING "Path to the directory containing the qml files needed by ${bare_name} gui"
|
||||
)
|
||||
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
set(CMAKE_AUTORCC ON)
|
||||
find_package(Qt5Core 5.1 REQUIRED)
|
||||
find_package(Qt5Qml 5.1 REQUIRED)
|
||||
find_package(Qt5Widgets 5.1 REQUIRED)
|
||||
|
||||
add_executable(${PROJECT_NAME}
|
||||
main.cpp
|
||||
searcher.cpp
|
||||
$<$<AND:$<CONFIG:Release>,$<BOOL:${DINDEXER_ENABLE_QRC}>>:reslist.qrc>
|
||||
)
|
||||
|
||||
set(qml_files
|
||||
|
@ -30,18 +35,22 @@ target_link_libraries(${PROJECT_NAME}
|
|||
PRIVATE ${bare_name}-common
|
||||
PRIVATE Qt5::Qml
|
||||
PRIVATE Qt5::Widgets
|
||||
PRIVATE Qt5::Core
|
||||
PRIVATE glob2regex
|
||||
)
|
||||
|
||||
string(REPLACE "${bare_name}-" "" ACTION_NAME "${PROJECT_NAME}")
|
||||
target_compile_definitions(${PROJECT_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)
|
||||
foreach(current_qml ${qml_files})
|
||||
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}")
|
||||
endforeach()
|
||||
set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${clean_qml_list}")
|
||||
|
@ -59,4 +68,6 @@ install(TARGETS ${PROJECT_NAME}
|
|||
RUNTIME DESTINATION ${ACTIONS_PATH_INSTALL}
|
||||
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
|
||||
|
||||
#if defined(DINDEXER_INST_MODE)
|
||||
# define QML_PATH "@CMAKE_INSTALL_PREFIX@/@DINDEXER_CURR_QML_PATH@"
|
||||
#if DIN_QRC_ENABLED
|
||||
# define QML_PATH ":"
|
||||
#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
|
||||
|
|
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
Reference in a new issue