From 6def7fceae5ea55e6d44ede05146f6a95add317c Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Thu, 20 Jun 2013 17:31:07 -0500 Subject: install .schema.xml and indicator-session-service in the right places. --- cmake/UseGSettings.cmake | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 cmake/UseGSettings.cmake (limited to 'cmake/UseGSettings.cmake') diff --git a/cmake/UseGSettings.cmake b/cmake/UseGSettings.cmake new file mode 100644 index 0000000..3d8ae1c --- /dev/null +++ b/cmake/UseGSettings.cmake @@ -0,0 +1,43 @@ +# GSettings.cmake, CMake macros written for Marlin, feel free to re-use them. + +option (GSETTINGS_LOCALINSTALL "Install GSettings Schemas locally instead of to the GLib prefix" ${LOCAL_INSTALL}) + +option (GSETTINGS_COMPILE "Compile GSettings Schemas after installation" ${GSETTINGS_LOCALINSTALL}) + +if(GSETTINGS_LOCALINSTALL) + message(STATUS "GSettings schemas will be installed locally.") +endif() + +if(GSETTINGS_COMPILE) + message(STATUS "GSettings shemas will be compiled.") +endif() + +macro(add_schema SCHEMA_NAME) + + set(PKG_CONFIG_EXECUTABLE pkg-config) + # Have an option to not install the schema into where GLib is + if (GSETTINGS_LOCALINSTALL) + SET (GSETTINGS_DIR "${CMAKE_INSTALL_PREFIX}/share/glib-2.0/schemas/") + else (GSETTINGS_LOCALINSTALL) + execute_process (COMMAND ${PKG_CONFIG_EXECUTABLE} glib-2.0 --variable prefix OUTPUT_VARIABLE _glib_prefix OUTPUT_STRIP_TRAILING_WHITESPACE) + SET (GSETTINGS_DIR "${_glib_prefix}/share/glib-2.0/schemas/") + endif (GSETTINGS_LOCALINSTALL) + + # Run the validator and error if it fails + execute_process (COMMAND ${PKG_CONFIG_EXECUTABLE} gio-2.0 --variable glib_compile_schemas OUTPUT_VARIABLE _glib_comple_schemas OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process (COMMAND ${_glib_comple_schemas} --dry-run --schema-file=${SCHEMA_NAME} ERROR_VARIABLE _schemas_invalid OUTPUT_STRIP_TRAILING_WHITESPACE) + + if (_schemas_invalid) + message (SEND_ERROR "Schema validation error: ${_schemas_invalid}") + endif (_schemas_invalid) + + # Actually install and recomple schemas + message (STATUS "GSettings schemas will be installed into ${GSETTINGS_DIR}") + install (FILES ${SCHEMA_NAME} DESTINATION ${GSETTINGS_DIR} OPTIONAL) + + if (GSETTINGS_COMPILE) + install (CODE "message (STATUS \"Compiling GSettings schemas\")") + install (CODE "execute_process (COMMAND ${_glib_comple_schemas} ${GSETTINGS_DIR})") + endif () +endmacro() + -- cgit v1.2.3 From 3d4daff706c39fb6ebdd29b950f3f0ea1402116d Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Thu, 20 Jun 2013 18:44:26 -0500 Subject: cmake: fix variables in data/CMakeLists.txt, make status messages more consistent --- cmake/UseGSettings.cmake | 7 ++++--- data/CMakeLists.txt | 52 +++++++++++++++++++++++++++++++----------------- 2 files changed, 38 insertions(+), 21 deletions(-) (limited to 'cmake/UseGSettings.cmake') diff --git a/cmake/UseGSettings.cmake b/cmake/UseGSettings.cmake index 3d8ae1c..c8ea30c 100644 --- a/cmake/UseGSettings.cmake +++ b/cmake/UseGSettings.cmake @@ -15,12 +15,13 @@ endif() macro(add_schema SCHEMA_NAME) set(PKG_CONFIG_EXECUTABLE pkg-config) + set(SCHEMA_SUFFIX "share/glib-2.0/schemas") # Have an option to not install the schema into where GLib is if (GSETTINGS_LOCALINSTALL) - SET (GSETTINGS_DIR "${CMAKE_INSTALL_PREFIX}/share/glib-2.0/schemas/") + SET (GSETTINGS_DIR "${CMAKE_INSTALL_PREFIX}/${SCHEMA_SUFFIX}") else (GSETTINGS_LOCALINSTALL) execute_process (COMMAND ${PKG_CONFIG_EXECUTABLE} glib-2.0 --variable prefix OUTPUT_VARIABLE _glib_prefix OUTPUT_STRIP_TRAILING_WHITESPACE) - SET (GSETTINGS_DIR "${_glib_prefix}/share/glib-2.0/schemas/") + SET (GSETTINGS_DIR "${_glib_prefix}/${SCHEMA_SUFFIX}") endif (GSETTINGS_LOCALINSTALL) # Run the validator and error if it fails @@ -32,7 +33,7 @@ macro(add_schema SCHEMA_NAME) endif (_schemas_invalid) # Actually install and recomple schemas - message (STATUS "GSettings schemas will be installed into ${GSETTINGS_DIR}") + message (STATUS "${GSETTINGS_DIR} is the GSettings install dir") install (FILES ${SCHEMA_NAME} DESTINATION ${GSETTINGS_DIR} OPTIONAL) if (GSETTINGS_COMPILE) diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt index de6942d..91f79a5 100644 --- a/data/CMakeLists.txt +++ b/data/CMakeLists.txt @@ -3,55 +3,71 @@ ## set (SCHEMA_NAME "com.canonical.indicator.session.gschema.xml") -set (SCHEMA_PATH "${CMAKE_CURRENT_BINARY_DIR}/${SCHEMA_NAME}") -set (SCHEMA_PATH_IN "${CMAKE_CURRENT_SOURCE_DIR}/${SCHEMA_NAME}.in") +set (SCHEMA_FILE "${CMAKE_CURRENT_BINARY_DIR}/${SCHEMA_NAME}") +set (SCHEMA_FILE_IN "${CMAKE_CURRENT_SOURCE_DIR}/${SCHEMA_NAME}.in") # generate the .xml file using intltool set (ENV{LC_ALL} "C") -execute_process (COMMAND intltool-merge -x -u --no-translations ${SCHEMA_PATH_IN} ${SCHEMA_PATH}) +execute_process (COMMAND intltool-merge -quiet --xml-style --utf8 --no-translations "${SCHEMA_FILE_IN}" "${SCHEMA_FILE}") # let UseGSettings do the rest -add_schema (${SCHEMA_PATH}) +add_schema (${SCHEMA_FILE}) ## ## DBus Service File ## +# where to install +if (${LOCAL_INSTALL}) + set (DBUS_SERVICE_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATADIR}/dbus-1/services") +else () + EXEC_PROGRAM (${PKG_CONFIG_EXECUTABLE} ARGS dbus-1 --variable session_bus_services_dir OUTPUT_VARIABLE DBUS_SERVICE_DIR) +endif () +message (STATUS "${DBUS_SERVICE_DIR} is the DBus Service File install dir") + set (SERVICE_NAME "${CMAKE_PROJECT_NAME}.service") -set (SERVICE_PATH "${CMAKE_CURRENT_BINARY_DIR}/${SERVICE_NAME}") -set (SERVICE_PATH_IN "${CMAKE_CURRENT_SOURCE_DIR}/${SERVICE_NAME}.in") +set (SERVICE_FILE "${CMAKE_CURRENT_BINARY_DIR}/${SERVICE_NAME}") +set (SERVICE_FILE_IN "${CMAKE_CURRENT_SOURCE_DIR}/${SERVICE_NAME}.in") # build it set (pkglibexecdir "${PROJECT_LIBEXECDIR}") -configure_file ("${SERVICE_PATH_IN}" "${SERVICE_PATH}") +configure_file ("${SERVICE_FILE_IN}" "${SERVICE_FILE}") # install it -install (FILES ${SERVICE_PATH} DESTINATION ${DBUSSERVICEDIR}) +install (FILES "${SERVICE_FILE}" + DESTINATION "${DBUS_SERVICE_DIR}") ## ## Unity Indicator File ## +# where to install +set (UNITY_INDICATOR_DIR "${CMAKE_INSTALL_PREFIX}/share/unity/indicators") +message (STATUS "${UNITY_INDICATOR_DIR} is the Unity Indicator install dir") + set (UNITY_INDICATOR_NAME "com.canonical.indicator.session") -set (UNITY_INDICATOR_PATH "${CMAKE_CURRENT_SOURCE_DIR}/${UNITY_INDICATOR_NAME}") -set (UNITY_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/share/unity") +set (UNITY_INDICATOR_FILE "${CMAKE_CURRENT_SOURCE_DIR}/${UNITY_INDICATOR_NAME}") -install (FILES ${UNITY_INDICATOR_PATH} DESTINATION "${UNITY_INSTALL_PREFIX}/indicators") +install (FILES "${UNITY_INDICATOR_FILE}" + DESTINATION "${UNITY_INDICATOR_DIR}") ## ## Icons ## -if(${LOCAL_INSTALL}) - set (ICON_PREFIX "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATADIR}/libindicator/icons/") -else() - EXEC_PROGRAM(${PKG_CONFIG_EXECUTABLE} ARGS indicator3-0.4 --variable iconsdir OUTPUT_VARIABLE ICON_PREFIX) -endif() +# where to install +if (${LOCAL_INSTALL}) + set (ICON_PREFIX "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATADIR}/libindicator/icons") +else () + EXEC_PROGRAM (${PKG_CONFIG_EXECUTABLE} ARGS indicator3-0.4 --variable iconsdir OUTPUT_VARIABLE ICON_PREFIX) +endif () set (ICON_DIR "${ICON_PREFIX}/hicolor") -message ("Installing icons to ${ICON_DIR}") +message (STATUS "${ICON_DIR} is the Icon install dir") + install (DIRECTORY icons - DESTINATION ${ICON_DIR} + DESTINATION "${ICON_DIR}" FILES_MATCHING PATTERN "*.png" PATTERN "*.svg") + -- cgit v1.2.3 From 0180339dd65daa9878b93e06ad8da3742999dd3d Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Fri, 28 Jun 2013 17:06:26 -0500 Subject: remove localinstall mode --- CMakeLists.txt | 1 - build.sh | 2 +- cmake/UseGSettings.cmake | 31 +++++-------------------------- data/CMakeLists.txt | 12 ++---------- 4 files changed, 8 insertions(+), 38 deletions(-) (limited to 'cmake/UseGSettings.cmake') diff --git a/CMakeLists.txt b/CMakeLists.txt index 1299319..875de0f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,7 +10,6 @@ set (GETTEXT_PACKAGE ${CMAKE_PROJECT_NAME}) option (enable_tests "Build the package's automatic tests." ON) option (full_warnings "Full compiler warnings." ON) option (enable_lcov "Generate lcov code coverage reports." ON) -option (LOCAL_INSTALL "Support local installation." OFF) find_package(PkgConfig REQUIRED) include (GNUInstallDirs) diff --git a/build.sh b/build.sh index c98285e..b69687c 100755 --- a/build.sh +++ b/build.sh @@ -13,6 +13,6 @@ fi echo "Using $BUILD_COMMAND to build" ( cd build - cmake .. $EXTRA_ARGS -DCMAKE_INSTALL_PREFIX=../../install -DLOCAL_INSTALL=ON -DCMAKE_BUILD_TYPE=Debug + cmake .. $EXTRA_ARGS -DCMAKE_INSTALL_PREFIX=../../install -DCMAKE_BUILD_TYPE=Debug $BUILD_COMMAND ) diff --git a/cmake/UseGSettings.cmake b/cmake/UseGSettings.cmake index c8ea30c..4050b53 100644 --- a/cmake/UseGSettings.cmake +++ b/cmake/UseGSettings.cmake @@ -1,32 +1,13 @@ # GSettings.cmake, CMake macros written for Marlin, feel free to re-use them. -option (GSETTINGS_LOCALINSTALL "Install GSettings Schemas locally instead of to the GLib prefix" ${LOCAL_INSTALL}) - -option (GSETTINGS_COMPILE "Compile GSettings Schemas after installation" ${GSETTINGS_LOCALINSTALL}) - -if(GSETTINGS_LOCALINSTALL) - message(STATUS "GSettings schemas will be installed locally.") -endif() - -if(GSETTINGS_COMPILE) - message(STATUS "GSettings shemas will be compiled.") -endif() - macro(add_schema SCHEMA_NAME) set(PKG_CONFIG_EXECUTABLE pkg-config) - set(SCHEMA_SUFFIX "share/glib-2.0/schemas") - # Have an option to not install the schema into where GLib is - if (GSETTINGS_LOCALINSTALL) - SET (GSETTINGS_DIR "${CMAKE_INSTALL_PREFIX}/${SCHEMA_SUFFIX}") - else (GSETTINGS_LOCALINSTALL) - execute_process (COMMAND ${PKG_CONFIG_EXECUTABLE} glib-2.0 --variable prefix OUTPUT_VARIABLE _glib_prefix OUTPUT_STRIP_TRAILING_WHITESPACE) - SET (GSETTINGS_DIR "${_glib_prefix}/${SCHEMA_SUFFIX}") - endif (GSETTINGS_LOCALINSTALL) + set(GSETTINGS_DIR "${CMAKE_INSTALL_PREFIX}/share/glib-2.0/schemas") # Run the validator and error if it fails - execute_process (COMMAND ${PKG_CONFIG_EXECUTABLE} gio-2.0 --variable glib_compile_schemas OUTPUT_VARIABLE _glib_comple_schemas OUTPUT_STRIP_TRAILING_WHITESPACE) - execute_process (COMMAND ${_glib_comple_schemas} --dry-run --schema-file=${SCHEMA_NAME} ERROR_VARIABLE _schemas_invalid OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process (COMMAND ${PKG_CONFIG_EXECUTABLE} gio-2.0 --variable glib_compile_schemas OUTPUT_VARIABLE _glib_compile_schemas OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process (COMMAND ${_glib_compile_schemas} --dry-run --schema-file=${SCHEMA_NAME} ERROR_VARIABLE _schemas_invalid OUTPUT_STRIP_TRAILING_WHITESPACE) if (_schemas_invalid) message (SEND_ERROR "Schema validation error: ${_schemas_invalid}") @@ -36,9 +17,7 @@ macro(add_schema SCHEMA_NAME) message (STATUS "${GSETTINGS_DIR} is the GSettings install dir") install (FILES ${SCHEMA_NAME} DESTINATION ${GSETTINGS_DIR} OPTIONAL) - if (GSETTINGS_COMPILE) - install (CODE "message (STATUS \"Compiling GSettings schemas\")") - install (CODE "execute_process (COMMAND ${_glib_comple_schemas} ${GSETTINGS_DIR})") - endif () + install (CODE "message (STATUS \"Compiling GSettings schemas\")") + install (CODE "execute_process (COMMAND ${_glib_compile_schemas} ${GSETTINGS_DIR})") endmacro() diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt index 6700163..6eb257c 100644 --- a/data/CMakeLists.txt +++ b/data/CMakeLists.txt @@ -19,11 +19,7 @@ add_schema (${SCHEMA_FILE}) ## # where to install -if (${LOCAL_INSTALL}) - set (DBUS_SERVICE_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATADIR}/dbus-1/services") -else () - EXEC_PROGRAM (${PKG_CONFIG_EXECUTABLE} ARGS dbus-1 --variable session_bus_services_dir OUTPUT_VARIABLE DBUS_SERVICE_DIR) -endif () +set (DBUS_SERVICE_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATADIR}/dbus-1/services") message (STATUS "${DBUS_SERVICE_DIR} is the DBus Service File install dir") set (SERVICE_NAME "${CMAKE_PROJECT_NAME}.service") @@ -59,11 +55,7 @@ install (FILES "${UNITY_INDICATOR_FILE}" ## # where to install -if (${LOCAL_INSTALL}) - set (ICON_PREFIX "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATADIR}/libindicator/icons") -else () - EXEC_PROGRAM (${PKG_CONFIG_EXECUTABLE} ARGS indicator3-0.4 --variable iconsdir OUTPUT_VARIABLE ICON_PREFIX) -endif () +set (ICON_PREFIX "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATADIR}/libindicator/icons") set (ICON_DIR "${ICON_PREFIX}/hicolor") message (STATUS "${ICON_DIR} is the Icon install dir") -- cgit v1.2.3 From 477dc6fa22bcd37b23deb45b57bec6518ba52ad9 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Mon, 1 Jul 2013 19:02:47 -0500 Subject: in the cmake files, prefer the _FULL versions of the GNU variables --- CMakeLists.txt | 4 ++-- cmake/UseGSettings.cmake | 2 +- data/CMakeLists.txt | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) (limited to 'cmake/UseGSettings.cmake') diff --git a/CMakeLists.txt b/CMakeLists.txt index 593d916..25c2be1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -46,8 +46,8 @@ include_directories (${CMAKE_CURRENT_BINARY_DIR}/src) # Workaround for libexecdir on debian if (EXISTS "/etc/debian_version") - set (CMAKE_INSTALL_LIBEXECDIR ${CMAKE_INSTALL_LIBDIR}) - set (CMAKE_INSTALL_FULL_LIBEXECDIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBEXECDIR}") + set (CMAKE_INSTALL_LIBEXECDIR "${CMAKE_INSTALL_LIBDIR}") + set (CMAKE_INSTALL_FULL_LIBEXECDIR "${CMAKE_INSTALL_FULL_LIBDIR}") endif () set (PROJECT_LIBEXECDIR "${CMAKE_INSTALL_FULL_LIBEXECDIR}/${CMAKE_PROJECT_NAME}") message (STATUS "${PROJECT_LIBEXECDIR} is the libexec install dir") diff --git a/cmake/UseGSettings.cmake b/cmake/UseGSettings.cmake index 4050b53..3b61523 100644 --- a/cmake/UseGSettings.cmake +++ b/cmake/UseGSettings.cmake @@ -3,7 +3,7 @@ macro(add_schema SCHEMA_NAME) set(PKG_CONFIG_EXECUTABLE pkg-config) - set(GSETTINGS_DIR "${CMAKE_INSTALL_PREFIX}/share/glib-2.0/schemas") + set(GSETTINGS_DIR "${CMAKE_INSTALL_FULL_DATAROOTDIR}/glib-2.0/schemas") # Run the validator and error if it fails execute_process (COMMAND ${PKG_CONFIG_EXECUTABLE} gio-2.0 --variable glib_compile_schemas OUTPUT_VARIABLE _glib_compile_schemas OUTPUT_STRIP_TRAILING_WHITESPACE) diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt index 335582c..3ddf422 100644 --- a/data/CMakeLists.txt +++ b/data/CMakeLists.txt @@ -19,7 +19,7 @@ add_schema (${SCHEMA_FILE}) ## # where to install -set (DBUS_SERVICE_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATADIR}/dbus-1/services") +set (DBUS_SERVICE_DIR "${CMAKE_INSTALL_FULL_DATADIR}/dbus-1/services") message (STATUS "${DBUS_SERVICE_DIR} is the DBus Service File install dir") set (SERVICE_NAME "${CMAKE_PROJECT_NAME}.service") @@ -40,7 +40,7 @@ install (FILES "${SERVICE_FILE}" ## # where to install -set (UNITY_INDICATOR_DIR "${CMAKE_INSTALL_PREFIX}/share/unity/indicators") +set (UNITY_INDICATOR_DIR "${CMAKE_INSTALL_FULL_DATAROOTDIR}/unity/indicators") message (STATUS "${UNITY_INDICATOR_DIR} is the Unity Indicator install dir") set (UNITY_INDICATOR_NAME "com.canonical.indicator.session") -- cgit v1.2.3