1
0
Fork 0
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:
King_DuckZ 2016-10-15 20:47:51 +02:00
parent 44706da689
commit 72fa33adbc
3 changed files with 25 additions and 5 deletions

View file

@ -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()

View file

@ -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
View file

@ -0,0 +1,5 @@
<!DOCTYPE RCC><RCC version="1.0">
<qresource>
<file>qml/mainwin.qml</file>
</qresource>
</RCC>