diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..469b8cf
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "GCR_CMake"]
+ path = GCR_CMake
+ url = https://github.com/daleclack/GCR_CMake
diff --git a/GCR_CMake b/GCR_CMake
new file mode 160000
index 0000000..6ea69ec
--- /dev/null
+++ b/GCR_CMake
@@ -0,0 +1 @@
+Subproject commit 6ea69eca6817aead20a2cb87cdd08ab8e9a173cd
diff --git a/XeRelease_Gtkmm3/CMakeLists.txt b/XeRelease_Gtkmm3/CMakeLists.txt
new file mode 100644
index 0000000..58c7681
--- /dev/null
+++ b/XeRelease_Gtkmm3/CMakeLists.txt
@@ -0,0 +1,57 @@
+set(CMAKE_CXX_STANDARD 17)
+cmake_minimum_required(VERSION 3.0.0)
+project(XeRelease VERSION 14.0.0)
+
+#Add GCR_CMake
+list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../GCR_CMake/macros)
+include(GlibCompileResourcesSupport)
+
+include(CTest)
+enable_testing()
+
+set(CPACK_PROJECT_NAME ${PROJECT_NAME})
+set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
+
+include(CPack)
+include_directories(..)
+include_directories(../cfgfile2)
+
+find_package (PkgConfig REQUIRED)
+pkg_check_modules (GTKMM3 REQUIRED gtkmm-3.0)
+include_directories (${GTKMM3_INCLUDE_DIRS})
+link_directories (${GTKMM3_LIBRARY_DIRS})
+
+set(SOURCES src/main.cc src/MyWin.cc src/MyDialog.cc
+ src/xerelease.cc src/xeapi.cc ../cfgfile2/cfgfile.cc)
+
+#Compile resources with GCR_CMake
+set(RESOURCE_LIST
+ STRIPBLANKS menubar.xml
+ STRIPBLANKS prefs.ui
+ icons/16x16/actions/open-menu.png
+ icons/48x48/actions/Xe-Release.png)
+
+compile_gresources(RESOURCE_FILE
+ XML_OUT
+ TYPE EMBED_C
+ RESOURCES ${RESOURCE_LIST}
+ PREFIX "/org/gtk/daleclack"
+ SOURCE_DIR ${PROJECT_SOURCE_DIR}/res)
+
+# Add a custom target to the makefile. Now make builds our resource file.
+# It depends on the output RESOURCE_FILE.
+add_custom_target(resource ALL DEPENDS ${RESOURCE_FILE})
+
+if(WIN32)
+ SET(CMAKE_RC_COMPILER windres)
+ set(app_WINRC icon.rc)
+ set_property(SOURCE icon.rc APPEND PROPERTY
+ OBJECT_DEPENDS ${PROJECT_SOURCE_DIR}/icon.ico
+ )
+ add_executable(XeRelease WIN32 ${app_WINRC} ${SOURCES} ${RESOURCE_FILE})
+else()
+ add_executable(XeRelease ${SOURCES} ${RESOURCE_FILE})
+endif(WIN32)
+
+SET (CMAKE_EXTRA_CXX_FLAGS ${GTKMM3_CFLAGS_OTHER})
+target_link_libraries (${PROJECT_NAME} ${GTKMM3_LIBRARIES})
diff --git a/XeRelease_Gtkmm3/cmake_backup/CMakeLists.txt b/XeRelease_Gtkmm3/cmake_backup/CMakeLists.txt
deleted file mode 100644
index e7573c3..0000000
--- a/XeRelease_Gtkmm3/cmake_backup/CMakeLists.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-set(CMAKE_CXX_STANDARD 17)
-cmake_minimum_required(VERSION 3.0.0)
-project(XeRelease VERSION 12.1.0)
-
-include(CTest)
-enable_testing()
-
-set(CPACK_PROJECT_NAME ${PROJECT_NAME})
-set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
-
-include(CPack)
-include_directories(..)
-
-find_package (PkgConfig REQUIRED)
-pkg_check_modules (GTKMM3 REQUIRED gtkmm-3.0)
-include_directories (${GTKMM3_INCLUDE_DIRS})
-link_directories (${GTKMM3_LIBRARY_DIRS})
-
-if(WIN32)
- SET(CMAKE_RC_COMPILER x86_64-w64-mingw32-windres)
- set(app_WINRC icon.rc)
- set_property(SOURCE icon.rc APPEND PROPERTY
- OBJECT_DEPENDS ${PROJECT_SOURCE_DIR}/icon.ico
- )
- add_executable(XeRelease WIN32 ${app_WINRC} src/main.cc src/MyWin.cc src/MyDialog.cc
- src/xerelease.cc src/xeapi.cc src/resources.cpp)
-else()
- add_executable(XeRelease src/main.cc src/MyWin.cc src/MyDialog.cc
- src/xerelease.cc src/xeapi.cc src/resources.cpp)
-endif(WIN32)
-
-SET (CMAKE_EXTRA_CXX_FLAGS ${GTKMM3_CFLAGS_OTHER})
-target_link_libraries (${PROJECT_NAME} ${GTKMM3_LIBRARIES})
diff --git a/XeRelease_Gtkmm3/res/xerelease.gresource.xml b/XeRelease_Gtkmm3/res/xerelease.gresource.xml
index ea07d3b..35f40f8 100644
--- a/XeRelease_Gtkmm3/res/xerelease.gresource.xml
+++ b/XeRelease_Gtkmm3/res/xerelease.gresource.xml
@@ -3,8 +3,6 @@
icons/16x16/actions/open-menu.png
icons/48x48/actions/Xe-Release.png
-
-
menubar.xml
prefs.ui
diff --git a/XeRelease_Gtkmm3/src/MyDialog.cc b/XeRelease_Gtkmm3/src/MyDialog.cc
index 080a578..5cb4e34 100644
--- a/XeRelease_Gtkmm3/src/MyDialog.cc
+++ b/XeRelease_Gtkmm3/src/MyDialog.cc
@@ -80,7 +80,7 @@ void MyDialog::on_response(int response_id){
MyDialog * MyDialog::create(Gtk::Window& parent){
//Create a dialog
- auto builder=Gtk::Builder::create_from_resource("/XeRelease/prefs.ui");
+ auto builder=Gtk::Builder::create_from_resource("/org/gtk/daleclack/prefs.ui");
MyDialog * dialog=nullptr;
builder->get_widget_derived("prefs",dialog);
diff --git a/XeRelease_Gtkmm3/src/MyWin.cc b/XeRelease_Gtkmm3/src/MyWin.cc
index f5a1f9c..b5e19e3 100644
--- a/XeRelease_Gtkmm3/src/MyWin.cc
+++ b/XeRelease_Gtkmm3/src/MyWin.cc
@@ -70,7 +70,7 @@ void MyWin::titlebar_init()
set_titlebar(header);
// Initalize Menu
- menu_builder = Gtk::Builder::create_from_resource("/XeRelease/menubar.xml");
+ menu_builder = Gtk::Builder::create_from_resource("/org/gtk/daleclack/menubar.xml");
auto object = menu_builder->get_object("app-menu");
auto gmenu = Glib::RefPtr::cast_dynamic(object);
popover.bind_model(gmenu);