From 907ce8082fe7652e9354018a7e594132bd620269 Mon Sep 17 00:00:00 2001 From: daleclack Date: Tue, 24 May 2022 11:47:03 +0800 Subject: [PATCH] Re-enable CMake build support --- .gitmodules | 3 ++ GCR_CMake | 1 + XeRelease_Gtkmm3/CMakeLists.txt | 57 ++++++++++++++++++++ XeRelease_Gtkmm3/cmake_backup/CMakeLists.txt | 33 ------------ XeRelease_Gtkmm3/res/xerelease.gresource.xml | 2 - XeRelease_Gtkmm3/src/MyDialog.cc | 2 +- XeRelease_Gtkmm3/src/MyWin.cc | 2 +- 7 files changed, 63 insertions(+), 37 deletions(-) create mode 100644 .gitmodules create mode 160000 GCR_CMake create mode 100644 XeRelease_Gtkmm3/CMakeLists.txt delete mode 100644 XeRelease_Gtkmm3/cmake_backup/CMakeLists.txt 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);