################################################################ # Project Gnome-Pie ################################################################ project("gnomepie" C) cmake_minimum_required(VERSION 2.6) # Location where cmake first looks for modules. list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/vala) ################################################################ # Find Vala ################################################################ include(ValaPrecompile) include(ValaVersion) find_package(Vala) ensure_vala_version("0.22.0" MINIMUM) ################################################################ # Configure and find libraries ################################################################ find_package(PkgConfig) pkg_check_modules(GTK3 REQUIRED gtk+-3.0) pkg_check_modules(INDICATOR3 appindicator3-0.1) pkg_check_modules(WNCK REQUIRED libwnck-3.0) pkg_check_modules(BAMF libbamf3) pkg_check_modules(GIO REQUIRED gio-unix-2.0) pkg_check_modules(CAIRO REQUIRED cairo) pkg_check_modules(GEE REQUIRED gee-0.8) pkg_check_modules(X11 REQUIRED x11) pkg_check_modules(XML REQUIRED libxml-2.0) pkg_check_modules(XTST REQUIRED xtst) pkg_check_modules(GMENU3 libgnome-menu-3.0) find_library(M_LIB m) find_library(GTHREAD_LIB gthread-2.0) find_library(ARCHIVE_LIB archive) set(CFLAGS ${GIO_CFLAGS} ${GTK3_CFLAGS} ${GTK3_CFLAGS_OTHER} ${CAIRO_CFLAGS} ${CAIRO_CFLAGS_OTHER} ${GEE_CFLAGS} ${CAIRO_CFLAGS_OTHER} ${X11_CFLAGS} ${X11_CFLAGS_OTHER} -DGMENU_I_KNOW_THIS_IS_UNSTABLE -DWNCK_I_KNOW_THIS_IS_UNSTABLE -DGETTEXT_PACKAGE="gnomepie" -s -O3 -w ) if (GTK3_VERSION VERSION_LESS 3.20) message(GTK version ${GTK3_VERSION} is older than 3.20. Some features will not be available.) else() LIST(APPEND CFLAGS -DHAVE_GTK_3_20) LIST(APPEND VALA_DEFINES --define HAVE_GTK_3_20) endif() if (GTK3_VERSION VERSION_LESS 3.22) message(GTK version ${GTK3_VERSION} is older than 3.22. Some features will not be available.) else() LIST(APPEND CFLAGS -DHAVE_GTK_3_22) LIST(APPEND VALA_DEFINES --define HAVE_GTK_3_22) endif() # fallback to gnome-menus2 if gnome-menus3 wasn't found if (${GMENU3_FOUND}) LIST(APPEND CFLAGS -DHAVE_GMENU_3) LIST(APPEND VALA_DEFINES --define HAVE_GMENU_3) else (${GMENU3_FOUND}) pkg_check_modules(GMENU REQUIRED libgnome-menu) endif (${GMENU3_FOUND}) # notify application of presence of libappindicator if (${INDICATOR_FOUND}) LIST(APPEND CFLAGS -DHAVE_APPINDICATOR) LIST(APPEND VALA_DEFINES --define HAVE_APPINDICATOR) endif (${INDICATOR_FOUND}) if (${INDICATOR3_FOUND}) LIST(APPEND CFLAGS -DHAVE_APPINDICATOR) LIST(APPEND VALA_DEFINES --define HAVE_APPINDICATOR) endif (${INDICATOR3_FOUND}) if (${BAMF_FOUND}) LIST(APPEND CFLAGS -DHAVE_BAMF) LIST(APPEND VALA_DEFINES --define HAVE_BAMF) endif (${BAMF_FOUND}) add_definitions(${CFLAGS}) set(LIBS ${GIO_LIBRARIES} ${GTK3_LIBRARIES} ${CAIRO_LIBRARIES} ${GEE_LIBRARIES} ${INDICATOR_LIBRARIES} ${INDICATOR3_LIBRARIES} ${XML_LIBRARIES} ${XTST_LIBRARIES} ${GMENU_LIBRARIES} ${GMENU3_LIBRARIES} ${X11_LIBRARIES} ${WNCK_LIBRARIES} ${BAMF_LIBRARIES} ${ARCHIVE_LIB} ${M_LIB} ${GTHREAD_LIB} ) link_libraries(${LIBS}) set(LIB_PATHS ${GIO_LIBRARY_DIRS} ${GTK3_LIBRARY_DIRS} ${CAIRO_LIBRARY_DIRS} ${GEE_LIBRARY_DIRS} ${INDICATOR_LIBRARY_DIRS} ${INDICATOR3_LIBRARY_DIRS} ${XML_LIBRARY_DIRS} ${XTST_LIBRARY_DIRS} ${GMENU_LIBRARY_DIRS} ${GMENU3_LIBRARY_DIRS} ${X11_LIBRARY_DIRS} ${WNCK_LIBRARY_DIRS} ${BAMF_LIBRARY_DIRS} ) link_directories(${LIB_PATHS}) set(INCLUDE_PATHS ${GIO_INCLUDE_DIRS} ${GTK3_INCLUDE_DIRS} ${CAIRO_INCLUDE_DIRS} ${GEE_INCLUDE_DIRS} ${INDICATOR_INCLUDE_DIRS} ${INDICATOR3_INCLUDE_DIRS} ${XML_INCLUDE_DIRS} ${XTST_INCLUDE_DIRS} ${GMENU_INCLUDE_DIRS} ${GMENU3_INCLUDE_DIRS} ${X11_INCLUDE_DIRS} ${WNCK_INCLUDE_DIRS} ${BAMF_INCLUDE_DIRS} ) include_directories(${INCLUDE_PATHS}) ################################################################ # Add executable ################################################################ set(EXECUTABLE_OUTPUT_PATH ${gnomepie_SOURCE_DIR}) set(VALA_PKGS gtk+-3.0 gdk-x11-3.0 libwnck-3.0 cairo gee-0.8 x11 gio-unix-2.0 posix libxml-2.0 xtst libarchive ) if (${INDICATOR_FOUND}) LIST(APPEND VALA_PKGS appindicator-0.1) endif (${INDICATOR_FOUND}) if (${INDICATOR3_FOUND}) LIST(APPEND VALA_PKGS appindicator3-0.1) endif (${INDICATOR3_FOUND}) if (${GMENU3_FOUND}) LIST(APPEND VALA_PKGS libgnome-menu-3.0) else (${GMENU3_FOUND}) LIST(APPEND VALA_PKGS libgnome-menu) endif (${GMENU3_FOUND}) if (${BAMF_FOUND}) LIST(APPEND VALA_PKGS libbamf3) endif (${BAMF_FOUND}) add_subdirectory(src) ################################################################ # Add uninstall option ################################################################ configure_file( "${CMAKE_CURRENT_SOURCE_DIR}/CMake_Uninstall.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/CMake_Uninstall.cmake" IMMEDIATE @ONLY) add_custom_target(uninstall COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/CMake_Uninstall.cmake) ################################################################ # Summary ################################################################ message( "" ) message( "Summary:" ) message( " EXECUTABLE_OUTPUT_PATH = ${EXECUTABLE_OUTPUT_PATH}" ) message( " VALA_EXECUTABLE = ${VALA_EXECUTABLE}" ) message( "Libs:" ) message( " GTK3_LIBRARIES = ${GTK3_LIBRARIES}" ) message( " CAIRO_LIBRARIES = ${CAIRO_LIBRARIES}" ) message( " GEE_LIBRARIES = ${GEE_LIBRARIES}" ) message( " INDICATOR_LIBRARIES = ${INDICATOR_LIBRARIES}" ) message( " INDICATOR3_LIBRARIES = ${INDICATOR3_LIBRARIES}" ) message( " XML_LIBRARIES = ${XML_LIBRARIES}" ) message( " XTST_LIBRARIES = ${XTST_LIBRARIES}" ) message( " GMENU_LIBRARIES = ${GMENU_LIBRARIES}" ) message( " GMENU3_LIBRARIES = ${GMENU3_LIBRARIES}" ) message( " X11_LIBRARIES = ${X11_LIBRARIES}" ) message( " WNCK_LIBRARIES = ${WNCK_LIBRARIES}" ) message( " ARCHIVE_LIBRARIES = ${ARCHIVE_LIB}" ) message( "" )