From 2867ec605e171204571ac01934568196c2117637 Mon Sep 17 00:00:00 2001 From: daleclack Date: Fri, 22 Oct 2021 18:33:23 +0800 Subject: [PATCH] [Experimental:Add CMake Support for gtk112 and gtk113 --- Gtk3/gtk112_file_exp/CMakeLists.txt | 56 +++++++++++++++++++++++ Gtkmm3/gtk113_file_gtkmm/CMakeLists.txt | 61 +++++++++++++++++++++++++ 2 files changed, 117 insertions(+) create mode 100644 Gtk3/gtk112_file_exp/CMakeLists.txt create mode 100644 Gtkmm3/gtk113_file_gtkmm/CMakeLists.txt diff --git a/Gtk3/gtk112_file_exp/CMakeLists.txt b/Gtk3/gtk112_file_exp/CMakeLists.txt new file mode 100644 index 0000000..865ff18 --- /dev/null +++ b/Gtk3/gtk112_file_exp/CMakeLists.txt @@ -0,0 +1,56 @@ +set(CMAKE_CXX_STANDARD 17) +cmake_minimum_required(VERSION 3.0.0) +project(gtk112 VERSION 1.0.0) + +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(..) + +find_package (PkgConfig REQUIRED) +pkg_check_modules (GTK3 REQUIRED gtk+-3.0) +include_directories (${GTK3_INCLUDE_DIRS}) +link_directories (${GTK3_LIBRARY_DIRS}) + +#Compile Resource +set(RESOURCE_LIST + gnome-fs-directory.png + gnome-fs-regular.png + view-grid-symbolic.png + view-list-symbolic.png + dialog-error.png) + +compile_gresources(RESOURCE_FILE + XML_OUT + TYPE EMBED_C + RESOURCES ${RESOURCE_LIST} + PREFIX "gtk112" + 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}) + +#For win32 platform,use rc resource and .ico icon +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(gtk112 WIN32 ${app_WINRC} src/main.cpp src/FileWindow.cpp ${RESOURCE_FILE}) +else() + add_executable(gtk112 src/main.cpp src/FileWindow.cpp ${RESOURCE_FILE}) + +endif(WIN32) + +SET (CMAKE_EXTRA_CXX_FLAGS ${GTK3_CFLAGS_OTHER}) +target_link_libraries (${PROJECT_NAME} ${GTK3_LIBRARIES} -lpthread) diff --git a/Gtkmm3/gtk113_file_gtkmm/CMakeLists.txt b/Gtkmm3/gtk113_file_gtkmm/CMakeLists.txt new file mode 100644 index 0000000..1fef1b9 --- /dev/null +++ b/Gtkmm3/gtk113_file_gtkmm/CMakeLists.txt @@ -0,0 +1,61 @@ +set(CMAKE_CXX_STANDARD 17) +cmake_minimum_required(VERSION 3.0.0) +project(gtk113 VERSION 1.0.0) + +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(..) + +find_package (PkgConfig REQUIRED) +pkg_check_modules (GTKMM3 REQUIRED gtkmm-3.0) +include_directories (${GTKMM3_INCLUDE_DIRS}) +link_directories (${GTKMM3_LIBRARY_DIRS}) + +#Compile Resource +set(RESOURCE_LIST + gnome-fs-directory.png + gnome-fs-regular.png + icons/24x24/actions/view-grid-symbolic.png + icons/24x24/actions/view-list-symbolic.png + icons/48x48/actions/dialog-error.png) + +compile_gresources(RESOURCE_FILE + XML_OUT + TYPE EMBED_C + RESOURCES ${RESOURCE_LIST} + PREFIX "/org/gtk/daleclack" + SOURCE_DIR ${PROJECT_SOURCE_DIR}/../default_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}) + +#For win32 platform,use rc resource and .ico icon +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(gtk113 WIN32 ${app_WINRC} src/main.cc src/FileWindow.cc ${RESOURCE_FILE}) +else() + add_executable(gtk113 src/main.cc src/FileWindow.cc ${RESOURCE_FILE}) + +endif(WIN32) + +#Add command to generate .gitignore +add_custom_command(TARGET ${PROJECT_NAME} + COMMAND echo \"*\" > ${CMAKE_BINARY_DIR}/.gitignore + COMMAND echo \"**/*\" > ${CMAKE_BINARY_DIR}/.hgignore) + +SET (CMAKE_EXTRA_CXX_FLAGS ${GTKMM3_CFLAGS_OTHER}) +target_link_libraries (${PROJECT_NAME} ${GTKMM3_LIBRARIES} -lpthread)