-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Alexis Lopez Zubieta
committed
Mar 7, 2019
1 parent
87417d6
commit b7627ef
Showing
23 changed files
with
212 additions
and
259 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,44 +1,28 @@ | ||
cmake_minimum_required(VERSION 3.0) | ||
project( | ||
XdgUtils | ||
VERSION 0.1.1 | ||
DESCRIPTION "Freedesktop standards C++ implementation" | ||
LANGUAGES CXX | ||
) | ||
project(XdgUtils) | ||
set(PROJECT_VERSION 0.1.1) | ||
set(PROJECT_DESCRIPTION "Freedesktop standards C++ implementation") | ||
set(PROJECT_HOMEPAGE_URL https://github.com/azubieta/xdg-utils-cxx) | ||
|
||
## Configuration options | ||
option(XDG_UTILS_TESTS "Build tests" OFF) | ||
option(XDG_UTILS_CODE_COVERAGE "Build Code Coverage report" OFF) | ||
|
||
## Modules | ||
option(XDG_UTILS_DESKTOP_ENTRY "Build Desktop Entry" ON) | ||
option(XDG_UTILS_BASE_DIR "Build Base Directory" ON) | ||
|
||
# Instalation paths | ||
set(XDG_UTILS_BIN_DIR bin CACHE PATH "Binaries install directory") | ||
set(XDG_UTILS_LIB_DIR lib/XdgUtils CACHE PATH "Libraries install directory") | ||
set(XDG_UTILS_HEADER_DIR include CACHE PATH "Public Headers install directory") | ||
set(XDG_UTILS_CMAKE_DIR lib/cmake/XdgUtils CACHE PATH "Cmake configs install directory") | ||
|
||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/cmake) | ||
|
||
## Global variables | ||
|
||
# Request C++-11 | ||
set(CMAKE_CXX_STANDARD 11) | ||
set(CMAKE_CXX_STANDARD_REQUIRED ON) | ||
|
||
# Sources | ||
if(XDG_UTILS_CODE_COVERAGE) | ||
message("Configuring project for code coverage mesurement") | ||
include(CodeCoverage) | ||
append_coverage_compiler_flags() | ||
endif() | ||
# Set GNU Install Dirs variables | ||
include(GNUInstallDirs) | ||
|
||
add_subdirectory(src) | ||
# Prepare code coverage | ||
include(cmake/code_coverge_config.cmake) | ||
|
||
include(ConfigurePackage) | ||
# Sources | ||
add_subdirectory(src) | ||
|
||
# Tests | ||
if(XDG_UTILS_TESTS) | ||
enable_testing() | ||
add_subdirectory(tests) | ||
endif() | ||
enable_testing() | ||
add_subdirectory(tests) |
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
if(XDG_UTILS_CODE_COVERAGE) | ||
include(${CMAKE_CURRENT_LIST_DIR}/code_coverage_utils.cmake) | ||
append_coverage_compiler_flags() | ||
endif() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
include(CMakePackageConfigHelpers) | ||
|
||
configure_package_config_file( | ||
"${PROJECT_SOURCE_DIR}/package/cmake/XdgUtilsConfig.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/XdgUtilsConfig.cmake" | ||
INSTALL_DESTINATION ${PROJECT_INSTALL_CMAKEDIR} | ||
PATH_VARS PROJECT_INSTALL_LIBDIR PROJECT_INSTALL_INCLUDEDIR | ||
) | ||
|
||
write_basic_package_version_file( | ||
"${CMAKE_CURRENT_BINARY_DIR}/XdgUtilsConfigVersion.cmake" | ||
VERSION ${PROJECT_VERSION} | ||
COMPATIBILITY AnyNewerVersion | ||
) | ||
|
||
install( | ||
FILES | ||
"${CMAKE_CURRENT_BINARY_DIR}/XdgUtilsConfig.cmake" | ||
"${CMAKE_CURRENT_BINARY_DIR}/XdgUtilsConfigVersion.cmake" | ||
DESTINATION ${PROJECT_INSTALL_CMAKEDIR} | ||
COMPONENT ${PROJECT_COMPONENT_DEVEL} | ||
) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
function(add_xdgutils_module name srcs) | ||
message("-- Creating module target: ${name}") | ||
add_library(${name} STATIC ${srcs}) | ||
|
||
message("-- Creating module target alias: ${PROJECT_NAME}::${name}") | ||
add_library(${PROJECT_NAME}::${name} ALIAS ${name}) | ||
|
||
# Configure target properties | ||
target_include_directories( | ||
${name} | ||
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> | ||
PUBLIC $<BUILD_INTERFACE:${PROJECT_INCLUDEDIR}> | ||
PUBLIC $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> | ||
) | ||
|
||
set_target_properties( | ||
${name} PROPERTIES | ||
PREFIX "lib${PROJECT_NAME}" | ||
PUBLIC INTERFACE_LINK_DIRECTORIES $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}> | ||
PUBLIC INTERFACE_LINK_DIRECTORIES $<INSTALL_INTERFACE:${PROJECT_INSTALL_LIBDIR}> | ||
) | ||
endfunction() | ||
|
||
## | ||
# Install module resources | ||
## | ||
SET(PROJECT_INSTALL_LIBS "" CACHE INTERNAL "Libs binaries") | ||
function(install_xdgutils_module name) | ||
# Install binaries | ||
install( | ||
TARGETS ${name} | ||
EXPORT ${name} | ||
LIBRARY DESTINATION ${PROJECT_INSTALL_LIBDIR} COMPONENT ${name} | ||
ARCHIVE DESTINATION ${PROJECT_INSTALL_LIBDIR} COMPONENT ${name} | ||
) | ||
|
||
# Install library headers | ||
install( | ||
DIRECTORY ${PROJECT_INCLUDEDIR}/${PROJECT_NAME}/${name} | ||
DESTINATION ${PROJECT_INSTALL_INCLUDEDIR} | ||
COMPONENT ${name} | ||
) | ||
|
||
# Build cmake target config files | ||
export(EXPORT ${name} NAMESPACE ${PROJECT_NAME}::) | ||
|
||
# Install cmake target config files | ||
install( | ||
EXPORT ${name} | ||
FILE "${PROJECT_NAME}${name}.cmake" | ||
NAMESPACE ${PROJECT_NAME}:: | ||
DESTINATION ${PROJECT_INSTALL_CMAKEDIR} | ||
COMPONENT ${name} | ||
) | ||
|
||
# Register library | ||
SET(PROJECT_INSTALL_LIBS ${PROJECT_INSTALL_LIBS} "${PROJECT_NAME}${name}" CACHE INTERNAL "Libs binaries") | ||
endfunction() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
set(@PROJECT_NAME@_VERSION @PROJECT_VERSION@) | ||
|
||
@PACKAGE_INIT@ | ||
|
||
set_and_check(XDGUTILS_LIBDIR @PACKAGE_PROJECT_INSTALL_LIBDIR@) | ||
set_and_check(XDGUTILS_INCLUDE_DIRECTORIES @PACKAGE_PROJECT_INSTALL_INCLUDEDIR@) | ||
|
||
set(XDGUTILS_LINK_LIBRARIES @PROJECT_INSTALL_LIBS@) | ||
|
||
## Try to find the required components | ||
foreach(comp ${@PROJECT_NAME@_FIND_COMPONENTS}) | ||
set(COMPONENT_TARGETS_FILE "${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@${comp}.cmake") | ||
if(EXISTS "${COMPONENT_TARGETS_FILE}") | ||
set(@PROJECT_NAME@_${comp}_FOUND TRUE) | ||
include("${COMPONENT_TARGETS_FILE}") | ||
|
||
message(STATUS "@PROJECT_NAME@::${comp} found") | ||
else() | ||
if(@PROJECT_NAME@_FIND_REQUIRED_${comp}) | ||
message(FATAL_ERROR "@PROJECT_NAME@::${comp} not found !") | ||
endif() | ||
endif() | ||
endforeach() | ||
|
||
check_required_components(@PROJECT_NAME@) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,44 +1,2 @@ | ||
project(BaseDir) | ||
|
||
add_library( | ||
${PROJECT_NAME} STATIC | ||
BaseDir.cpp | ||
) | ||
|
||
set(PUBLIC_HEADERS_DIR "${XdgUtils_SOURCE_DIR}/include") | ||
|
||
target_include_directories( | ||
${PROJECT_NAME} | ||
PRIVATE $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}> | ||
|
||
PUBLIC $<BUILD_INTERFACE:${PUBLIC_HEADERS_DIR}> | ||
PUBLIC $<INSTALL_INTERFACE:${XDG_UTILS_HEADER_DIR}> # <prefix>/include/XdgUtils | ||
) | ||
|
||
add_library(XdgUtils::BaseDir ALIAS ${PROJECT_NAME}) | ||
|
||
# Install library headers | ||
install( | ||
DIRECTORY ${PUBLIC_HEADERS_DIR}/XdgUtils/BaseDir | ||
DESTINATION ${XDG_UTILS_HEADER_DIR}/XdgUtils | ||
COMPONENT BaseDir-Dev | ||
) | ||
|
||
# Install library files | ||
install( | ||
TARGETS ${PROJECT_NAME} | ||
EXPORT BaseDir | ||
ARCHIVE DESTINATION ${XDG_UTILS_LIB_DIR} COMPONENT BaseDir | ||
PUBLIC_HEADER DESTINATION ${XDG_UTILS_HEADER_DIR}/XdgUtils/BaseDir COMPONENT BaseDir-Dev | ||
) | ||
|
||
# Install cmake config files | ||
install( | ||
EXPORT BaseDir | ||
NAMESPACE XdgUtils:: | ||
DESTINATION ${XDG_UTILS_CMAKE_DIR} | ||
COMPONENT BaseDir-Dev | ||
) | ||
|
||
# Expose the target to be used without installation | ||
export(EXPORT BaseDir NAMESPACE XdgUtils::) | ||
add_xdgutils_module(BaseDir BaseDir.cpp) | ||
install_xdgutils_module(BaseDir) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,18 @@ | ||
if(XDG_UTILS_DESKTOP_ENTRY) | ||
add_subdirectory(DesktopEntry) | ||
endif() | ||
# Build variables | ||
set(PROJECT_INCLUDEDIR ${PROJECT_SOURCE_DIR}/include) | ||
|
||
if(XDG_UTILS_BASE_DIR) | ||
add_subdirectory(BaseDir) | ||
endif() | ||
# Install variables | ||
set(PROJECT_INSTALL_INCLUDEDIR ${CMAKE_INSTALL_INCLUDEDIR}/XdgUtils) | ||
set(PROJECT_INSTALL_LIBDIR ${CMAKE_INSTALL_LIBDIR}/XdgUtils) | ||
set(PROJECT_INSTALL_CMAKEDIR ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}) | ||
|
||
set(PROJECT_COMPONENT ${PROJECT_NAME}) | ||
set(PROJECT_COMPONENT_DEVEL ${PROJECT_NAME}) | ||
|
||
# Modules | ||
include(${PROJECT_SOURCE_DIR}/cmake/module_utils.cmake) | ||
|
||
add_subdirectory(DesktopEntry) | ||
add_subdirectory(BaseDir) | ||
|
||
include(${PROJECT_SOURCE_DIR}/cmake/generate_cmake_package.cmake) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,4 @@ | ||
add_library( | ||
XdgUtilsDesktopEntryAST OBJECT OBJECT | ||
AST.cpp | ||
Group.cpp | ||
Entry.cpp | ||
Comment.cpp | ||
Node.cpp) | ||
set(srcs AST.cpp Group.cpp Entry.cpp Comment.cpp Node.cpp) | ||
|
||
add_library(XdgUtilsDesktopEntryAST OBJECT ${srcs}) | ||
target_include_directories(XdgUtilsDesktopEntryAST PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,55 +1,20 @@ | ||
project(DesktopEntry) | ||
set(DesktopEntry_SOURCES_DIR ${CMAKE_CURRENT_SOURCE_DIR}) | ||
|
||
add_subdirectory(AST) | ||
add_subdirectory(Reader) | ||
|
||
add_library( | ||
${PROJECT_NAME} STATIC | ||
set( | ||
srcs | ||
|
||
DesktopEntry.cpp | ||
DesktopEntryKeyPath.cpp | ||
DesktopEntryKeyValue.cpp | ||
DesktopEntryExecValue.cpp | ||
DesktopEntryStringsValue.cpp | ||
|
||
$<TARGET_OBJECTS:XdgUtilsDesktopEntryAST> | ||
$<TARGET_OBJECTS:XdgUtilsDesktopEntryReader> | ||
"$<TARGET_OBJECTS:XdgUtilsDesktopEntryAST>" | ||
"$<TARGET_OBJECTS:XdgUtilsDesktopEntryReader>" | ||
) | ||
|
||
set(PUBLIC_HEADERS_DIR "${XdgUtils_SOURCE_DIR}/include") | ||
|
||
target_include_directories( | ||
${PROJECT_NAME} | ||
PRIVATE $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}> | ||
|
||
PUBLIC $<BUILD_INTERFACE:${PUBLIC_HEADERS_DIR}> | ||
PUBLIC $<INSTALL_INTERFACE:${XDG_UTILS_HEADER_DIR}> # <prefix>/include/XdgUtils | ||
) | ||
|
||
add_library(XdgUtils::DesktopEntry ALIAS ${PROJECT_NAME}) | ||
|
||
# Install library headers | ||
install( | ||
DIRECTORY ${PUBLIC_HEADERS_DIR}/XdgUtils/DesktopEntry | ||
DESTINATION ${XDG_UTILS_HEADER_DIR}/XdgUtils | ||
COMPONENT BaseDir-Dev | ||
) | ||
|
||
# Install library files | ||
install( | ||
TARGETS ${PROJECT_NAME} | ||
EXPORT DesktopEntry | ||
ARCHIVE DESTINATION ${XDG_UTILS_LIB_DIR} COMPONENT DesktopEntry | ||
PUBLIC_HEADER DESTINATION ${XDG_UTILS_HEADER_DIR}/XdgUtils/DesktopEntry COMPONENT DesktopEntry-Dev | ||
) | ||
|
||
# Install cmake config files | ||
install( | ||
EXPORT DesktopEntry | ||
NAMESPACE XdgUtils:: | ||
DESTINATION ${XDG_UTILS_CMAKE_DIR} | ||
COMPONENT DesktopEntry-Dev | ||
) | ||
|
||
# Expose the target to be used without installation | ||
export(EXPORT DesktopEntry NAMESPACE XdgUtils::) | ||
add_xdgutils_module(DesktopEntry "${srcs}") | ||
install_xdgutils_module(DesktopEntry) |
Oops, something went wrong.