diff --git a/CMakeLists.txt b/CMakeLists.txt
index a9aee3b17..494da0d06 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -383,19 +383,50 @@ set (all_C_and_CXXSRCS
${all_CXXSRCS}
)
+set (TOP_LEVEL_RESOURCES
+ shortcuts.txt
+ mouse_commands.txt
+ prefixes.txt
+ cty.dat
+ kvasd.dat
+ )
+
+set (PALETTE_FILES
+ Palettes/Banana.pal
+ Palettes/Blue1.pal
+ Palettes/Blue2.pal
+ Palettes/Blue3.pal
+ Palettes/Brown.pal
+ Palettes/Cyan1.pal
+ Palettes/Cyan2.pal
+ Palettes/Cyan3.pal
+ Palettes/Default.pal
+ Palettes/Digipan.pal
+ Palettes/Fldigi.pal
+ Palettes/Gray1.pal
+ Palettes/Gray2.pal
+ Palettes/Green1.pal
+ Palettes/Green2.pal
+ Palettes/Jungle.pal
+ Palettes/Linrad.pal
+ Palettes/Negative.pal
+ Palettes/Orange.pal
+ Palettes/Pink.pal
+ Palettes/Rainbow.pal
+ Palettes/Scope.pal
+ Palettes/Sunburst.pal
+ Palettes/VK4BDJ.pal
+ Palettes/YL2KF.pal
+ Palettes/Yellow1.pal
+ Palettes/Yellow2.pal
+ Palettes/ZL1FZ.pal
+)
+
set (SAMPLE_FILES
samples/130418_1742.wav
samples/130610_2343.wav
)
-if (WSJT_EMBED_SAMPLES)
- foreach (SAMPLE ${SAMPLE_FILES})
- set (SAMPLE_PATHS "${SAMPLE_PATHS}\n ${CMAKE_SOURCE_DIR}/${SAMPLE}")
- endforeach (SAMPLE ${SAMPLE_FILES})
-endif (WSJT_EMBED_SAMPLES)
-
-configure_file (wsjtx.qrc.in wsjtx.qrc @ONLY)
-
if (APPLE)
set (WSJTX_ICON_FILE ${CMAKE_PROJECT_NAME}.icns)
set (ICONSRCS
@@ -688,6 +719,26 @@ elseif (CMAKE_HOST_WIN32)
endif ()
+# embedded resources
+function (add_resources resources path)
+ foreach (resource_file_ ${ARGN})
+ get_filename_component (name_ ${resource_file_} NAME)
+ file (TO_NATIVE_PATH ${CMAKE_SOURCE_DIR}/${resource_file_} source_)
+ file (TO_NATIVE_PATH ${path}/${name_} dest_)
+ set (resources_ "${resources_}\n ${source_}")
+ set (${resources} ${${resources}}${resources_} PARENT_SCOPE)
+ endforeach (resource_file_ ${ARGN})
+endfunction (add_resources resources path)
+
+add_resources (wsjtx_RESOURCES "" ${TOP_LEVEL_RESOURCES})
+add_resources (wsjtx_RESOURCES /Palettes ${PALETTE_FILES})
+if (WSJT_EMBED_SAMPLES)
+ add_resources (wsjtx_RESOURCES /samples ${SAMPLE_FILES})
+endif (WSJT_EMBED_SAMPLES)
+
+configure_file (wsjtx.qrc.in wsjtx.qrc @ONLY)
+
+
# UI generation
qt5_wrap_ui (wsjt_qt_GENUISRCS ${wsjt_qt_UISRCS})
qt5_wrap_ui (wsjtx_GENUISRCS ${wsjtx_UISRCS})
diff --git a/wsjtx.qrc.in b/wsjtx.qrc.in
index 0072c2ee5..ffa9bf887 100644
--- a/wsjtx.qrc.in
+++ b/wsjtx.qrc.in
@@ -1,38 +1,5 @@
-
-
- @CMAKE_SOURCE_DIR@/shortcuts.txt
- @CMAKE_SOURCE_DIR@/mouse_commands.txt
- @CMAKE_SOURCE_DIR@/prefixes.txt
- @CMAKE_SOURCE_DIR@/cty.dat
- @CMAKE_SOURCE_DIR@/kvasd.dat
- @CMAKE_SOURCE_DIR@/Palettes/Banana.pal
- @CMAKE_SOURCE_DIR@/Palettes/Blue1.pal
- @CMAKE_SOURCE_DIR@/Palettes/Blue2.pal
- @CMAKE_SOURCE_DIR@/Palettes/Blue3.pal
- @CMAKE_SOURCE_DIR@/Palettes/Brown.pal
- @CMAKE_SOURCE_DIR@/Palettes/Cyan1.pal
- @CMAKE_SOURCE_DIR@/Palettes/Cyan2.pal
- @CMAKE_SOURCE_DIR@/Palettes/Cyan3.pal
- @CMAKE_SOURCE_DIR@/Palettes/Default.pal
- @CMAKE_SOURCE_DIR@/Palettes/Digipan.pal
- @CMAKE_SOURCE_DIR@/Palettes/Fldigi.pal
- @CMAKE_SOURCE_DIR@/Palettes/Gray1.pal
- @CMAKE_SOURCE_DIR@/Palettes/Gray2.pal
- @CMAKE_SOURCE_DIR@/Palettes/Green1.pal
- @CMAKE_SOURCE_DIR@/Palettes/Green2.pal
- @CMAKE_SOURCE_DIR@/Palettes/Jungle.pal
- @CMAKE_SOURCE_DIR@/Palettes/Linrad.pal
- @CMAKE_SOURCE_DIR@/Palettes/Negative.pal
- @CMAKE_SOURCE_DIR@/Palettes/Orange.pal
- @CMAKE_SOURCE_DIR@/Palettes/Pink.pal
- @CMAKE_SOURCE_DIR@/Palettes/Rainbow.pal
- @CMAKE_SOURCE_DIR@/Palettes/Scope.pal
- @CMAKE_SOURCE_DIR@/Palettes/Sunburst.pal
- @CMAKE_SOURCE_DIR@/Palettes/VK4BDJ.pal
- @CMAKE_SOURCE_DIR@/Palettes/YL2KF.pal
- @CMAKE_SOURCE_DIR@/Palettes/Yellow1.pal
- @CMAKE_SOURCE_DIR@/Palettes/Yellow2.pal
- @CMAKE_SOURCE_DIR@/Palettes/ZL1FZ.pal
- @SAMPLE_PATHS@
-
+
+
+ @wsjtx_RESOURCES@
+