[Xfce4-commits] [panel-plugins/xfce4-whiskermenu-plugin] 20/20: Improve CMake build script.
noreply at xfce.org
noreply at xfce.org
Thu Feb 6 12:03:37 CET 2020
This is an automated email from the git hooks/post-receive script.
g o t t c o d e p u s h e d a c o m m i t t o b r a n c h m a s t e r
in repository panel-plugins/xfce4-whiskermenu-plugin.
commit 7562926bf47c52436d564a0f913460bf42169523
Author: Graeme Gott <graeme at gottcode.org>
Date: Wed Feb 5 21:05:32 2020 -0500
Improve CMake build script.
---
panel-plugin/CMakeLists.txt | 130 ++++++++++++++++++--------------------------
1 file changed, 54 insertions(+), 76 deletions(-)
diff --git a/panel-plugin/CMakeLists.txt b/panel-plugin/CMakeLists.txt
index 18cef1a..d696f78 100644
--- a/panel-plugin/CMakeLists.txt
+++ b/panel-plugin/CMakeLists.txt
@@ -1,72 +1,10 @@
-set(WHISKERMENU_FLAGS "-Wall -Wextra")
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${WHISKERMENU_FLAGS}")
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WHISKERMENU_FLAGS}")
-if(ENABLE_VISIBILITY)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden")
-endif()
-
-if(ENABLE_AS_NEEDED)
- set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--as-needed")
-endif()
-if(ENABLE_LINKER_OPTIMIZED_HASH_TABLES)
- set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,-O1")
-endif()
-
find_package(PkgConfig REQUIRED)
-pkg_check_modules(GTK3 REQUIRED gtk+-3.0>=3.22)
-pkg_check_modules(exo REQUIRED exo-2>=0.11)
-pkg_check_modules(garcon REQUIRED garcon-1)
-pkg_check_modules(libxfce4panel REQUIRED libxfce4panel-2.0>=4.11)
-pkg_check_modules(libxfce4ui REQUIRED libxfce4ui-2>=4.11)
-pkg_check_modules(libxfce4util REQUIRED libxfce4util-1.0>=4.11)
-
-include_directories(
- ${GTK3_INCLUDE_DIRS}
- ${exo_INCLUDE_DIRS}
- ${garcon_INCLUDE_DIRS}
- ${libxfce4panel_INCLUDE_DIRS}
- ${libxfce4ui_INCLUDE_DIRS}
- ${libxfce4util_INCLUDE_DIRS})
-
-link_directories(
- ${GTK3_LIBRARY_DIRS}
- ${exo_LIBRARY_DIRS}
- ${garcon_LIBRARY_DIRS}
- ${libxfce4panel_LIBRARY_DIRS}
- ${libxfce4ui_LIBRARY_DIRS}
- ${libxfce4util_LIBRARY_DIRS})
-
-add_definitions(
- -DGETTEXT_PACKAGE="xfce4-whiskermenu-plugin"
- -DPACKAGE_LOCALE_DIR="${CMAKE_INSTALL_FULL_LOCALEDIR}"
- -DPACKAGE_NAME="xfce4-whiskermenu-plugin"
- -DPACKAGE_VERSION="${whiskermenu_version}"
- -DBINDIR="${CMAKE_INSTALL_FULL_BINDIR}"
- -DDATADIR="${CMAKE_INSTALL_FULL_DATADIR}"
- -DSETTINGS_MENUFILE="${CMAKE_INSTALL_FULL_SYSCONFDIR}/xdg/menus/xfce-settings-manager.menu"
- -DG_LOG_DOMAIN="whiskermenu"
- -DGSEAL_ENABLE
- -DGTK_MULTIHEAD_SAFE
- ${GTK3_CFLAGS_OTHER}
- ${exo_CFLAGS_OTHER}
- ${garcon_CFLAGS_OTHER}
- ${libxfce4panel_CFLAGS_OTHER}
- ${libxfce4ui_CFLAGS_OTHER}
- ${libxfce4util_CFLAGS_OTHER})
-
-if(ENABLE_DEVELOPER_MODE)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror")
- set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,-z,defs")
-
- add_definitions(
- -DXFCE_DISABLE_DEPRECATED
- -DG_DISABLE_DEPRECATED
- -DGDK_DISABLE_DEPRECATED
- -DGDK_PIXBUF_DISABLE_DEPRECATED
- -DGDK_DISABLE_SINGLE_INCLUDES
- -DGDK_PIXBUF_DISABLE_SINGLE_INCLUDES
- -DGTK_DISABLE_SINGLE_INCLUDES)
-endif()
+pkg_check_modules(GTK3 REQUIRED IMPORTED_TARGET gtk+-3.0>=3.22)
+pkg_check_modules(exo REQUIRED IMPORTED_TARGET exo-2>=0.11)
+pkg_check_modules(garcon REQUIRED IMPORTED_TARGET garcon-1)
+pkg_check_modules(libxfce4panel REQUIRED IMPORTED_TARGET libxfce4panel-2.0>=4.11)
+pkg_check_modules(libxfce4ui REQUIRED IMPORTED_TARGET libxfce4ui-2>=4.11)
+pkg_check_modules(libxfce4util REQUIRED IMPORTED_TARGET libxfce4util-1.0>=4.11)
add_library(whiskermenu MODULE
applications-page.cpp
@@ -98,26 +36,66 @@ add_library(whiskermenu MODULE
window.cpp)
target_link_libraries(whiskermenu
- ${GTK3_LIBRARIES}
- ${exo_LIBRARIES}
- ${garcon_LIBRARIES}
- ${libxfce4panel_LIBRARIES}
- ${libxfce4ui_LIBRARIES}
- ${libxfce4util_LIBRARIES})
+ PkgConfig::GTK3
+ PkgConfig::exo
+ PkgConfig::garcon
+ PkgConfig::libxfce4panel
+ PkgConfig::libxfce4ui
+ PkgConfig::libxfce4util)
+
+target_compile_options(whiskermenu PRIVATE -Wall -Wextra)
+
+target_compile_definitions(whiskermenu PRIVATE
+ GETTEXT_PACKAGE="xfce4-whiskermenu-plugin"
+ PACKAGE_LOCALE_DIR="${CMAKE_INSTALL_FULL_LOCALEDIR}"
+ PACKAGE_NAME="xfce4-whiskermenu-plugin"
+ PACKAGE_VERSION="${whiskermenu_version}"
+ BINDIR="${CMAKE_INSTALL_FULL_BINDIR}"
+ DATADIR="${CMAKE_INSTALL_FULL_DATADIR}"
+ SETTINGS_MENUFILE="${CMAKE_INSTALL_FULL_SYSCONFDIR}/xdg/menus/xfce-settings-manager.menu"
+ G_LOG_DOMAIN="whiskermenu"
+ GSEAL_ENABLE
+ GTK_MULTIHEAD_SAFE)
target_compile_features(whiskermenu PRIVATE cxx_std_11)
+if(ENABLE_VISIBILITY)
+ set_target_properties(whiskermenu PROPERTIES CXX_VISIBILITY_PRESET hidden)
+endif()
+
+if(ENABLE_AS_NEEDED)
+ target_link_options(whiskermenu PRIVATE "LINKER:--as-needed")
+endif()
+
+if(ENABLE_LINKER_OPTIMIZED_HASH_TABLES)
+ target_link_options(whiskermenu PRIVATE "LINKER:-O1")
+endif()
+
+if(ENABLE_DEVELOPER_MODE)
+ target_link_options(whiskermenu PRIVATE "LINKER:-z,defs")
+ target_compile_options(whiskermenu PRIVATE -Werror)
+ target_compile_definitions(whiskermenu PRIVATE
+ XFCE_DISABLE_DEPRECATED
+ G_DISABLE_DEPRECATED
+ GDK_DISABLE_DEPRECATED
+ GDK_PIXBUF_DISABLE_DEPRECATED
+ GDK_DISABLE_SINGLE_INCLUDES
+ GDK_PIXBUF_DISABLE_SINGLE_INCLUDES
+ GTK_DISABLE_SINGLE_INCLUDES)
+endif()
+
string(TOLOWER "${CMAKE_BUILD_TYPE}" CMAKE_BUILD_TYPE_TOLOWER)
if(CMAKE_BUILD_TYPE_TOLOWER MATCHES "release|minsizerel|relwithdebinfo")
if(ENABLE_LINK_TIME_OPTIMIZATION)
include(CheckIPOSupported)
check_ipo_supported(RESULT result)
if(result)
- set_property(TARGET whiskermenu PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE)
+ set_target_properties(whiskermenu PROPERTIES INTERPROCEDURAL_OPTIMIZATION TRUE)
endif()
endif()
- add_definitions(-DG_DISABLE_CAST_CHECKS -DG_DISABLE_ASSERT)
+ target_compile_definitions(whiskermenu PRIVATE G_DISABLE_CAST_CHECKS G_DISABLE_ASSERT)
+
add_custom_command(TARGET whiskermenu
POST_BUILD COMMAND ${CMAKE_STRIP} $<TARGET_FILE:whiskermenu>)
endif()
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Xfce4-commits
mailing list