Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
---
BasedOnStyle: Google
IndentWidth: '4'
...
23 changes: 23 additions & 0 deletions .clang-tidy
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
Checks:
-*,
bugprone-*,
clang-*,
google-*,
modernize-*,
performance-*,
portability-*,
readability-*,
-google-build-using-namespace,
-modernize-use-trailing-return-type,
-readability-identifier-length,
-readability-magic-numbers,
-bugprone-easily-swappable-parameters

HeaderFilterRegex: 'src'
FormatStyle: file

CheckOptions:
- key: misc-include-cleaner.MissingIncludes
value: false
...
1 change: 1 addition & 0 deletions .github/workflows/conf-build-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ jobs:

- name: Clang-tidy
if: ${{ github.event_name == 'pull_request' }}
continue-on-error: true
run: |
pip3 install pyyaml
COMPILE_COMMANDS=$(find . -name compile_commands.json | head -n 1)
Expand Down
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
.vscode
build*
doc
tags
CMakeUserPresets.json
dbus_xml/net.connman/*.h
dbus_xml/net.connman/*.c
118 changes: 118 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
cmake_minimum_required(VERSION 3.24)

option(BUILD_EXAMPLES "Build Examples" OFF)
option(BUILD_TESTS "Build Tests" OFF)
option(BUILD_CONNMAN "Build Connman Proxy" ON)

include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/VersionFromGit.cmake)
version_from_git(LOG OFF TIMESTAMP "%Y%m%d%H%M%S")

project(
GDbusCpp
VERSION ${VERSION}
DESCRIPTION ""
LANGUAGES C CXX)

set_property(GLOBAL PROPERTY USE_FOLDERS ON)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
include(GNUInstallDirs)

add_library(GDbusProxy include/amarula/dbus/gproxy.hpp src/dbus/gproxy.cpp)
add_library(Amarula::GDbusProxy ALIAS GDbusProxy)
target_include_directories(
GDbusProxy PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
install(
TARGETS GDbusProxy
EXPORT ${PROJECT_NAME}-config
COMPONENT ${PROJECT_NAME}
ARCHIVE COMPONENT ${PROJECT_NAME}-dev)
install(
DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
COMPONENT ${PROJECT_NAME}-dev)

find_package(PkgConfig REQUIRED)
pkg_check_modules(GIO_UNIX REQUIRED IMPORTED_TARGET gio-unix-2.0)
target_link_libraries(GDbusProxy PUBLIC PkgConfig::GIO_UNIX)

add_subdirectory(dbus_xml)

if(BUILD_CONNMAN)
add_library(
GConnmanDbus
$<TARGET_OBJECTS:gconnmanproxy> src/dbus/gconnman_definitions.hpp
include/amarula/dbus/gconnman.hpp include/amarula/dbus/gconnman_clock.hpp
src/dbus/gconnman_clock.cpp src/dbus/gconnman.cpp)
add_library(Amarula::GConnmanDbus ALIAS GConnmanDbus)
get_target_property(CONNMAN_PROXY_INCLUDES gconnmanproxy
INTERFACE_INCLUDE_DIRECTORIES)
target_include_directories(
GConnmanDbus PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
target_include_directories(GConnmanDbus PRIVATE ${CONNMAN_PROXY_INCLUDES})
target_link_libraries(GConnmanDbus PUBLIC GDbusProxy)

install(
TARGETS GConnmanDbus
EXPORT ${PROJECT_NAME}-config
COMPONENT ${PROJECT_NAME}
ARCHIVE COMPONENT ${PROJECT_NAME}-dev)
endif(BUILD_CONNMAN)

if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME)
if(BUILD_TESTS)
include(CTest)
add_subdirectory(tests)
endif(BUILD_TESTS)
if(BUILD_EXAMPLES)
include(CTest)
add_subdirectory(examples)
endif(BUILD_EXAMPLES)
if(BUILD_DOCS)
find_package(Doxygen)
if(DOXYGEN_FOUND)
set(DOXYGEN_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/doc")
set(DOXYGEN_EXCLUDE_PATTERNS "*/doc/*" "*/build/*" "${CMAKE_CURRENT_BINARY_DIR}/*")
doxygen_add_docs(doxygen_docs ${PROJECT_SOURCE_DIR}
COMMENT "Generate man pages")
endif(DOXYGEN_FOUND)
endif(BUILD_DOCS)
set(cpack_file_name
"${PROJECT_NAME}-v${SEMVER}-${CMAKE_SYSTEM_NAME}_${CMAKE_SYSTEM_VERSION}-${CMAKE_SYSTEM_PROCESSOR}-${CMAKE_CXX_COMPILER_ID}"
)
set(CPACK_PACKAGE_FILE_NAME ${cpack_file_name})
include(CPack)
include(CPackIFW)
cpack_add_component(${PROJECT_NAME})
endif(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME)

install(
EXPORT ${PROJECT_NAME}-config
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
NAMESPACE Amarula::
COMPONENT ${PROJECT_NAME}-dev)
install(
FILES ${CMAKE_SOURCE_DIR}/LICENSE
DESTINATION ${CMAKE_INSTALL_DATADIR}/Amarula/${PROJECT_NAME}
COMPONENT ${PROJECT_NAME})
include(CMakePackageConfigHelpers)
configure_package_config_file(
${CMAKE_CURRENT_SOURCE_DIR}/cmake/Config.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME})
write_basic_package_version_file(
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake
VERSION ${VERSION}
COMPATIBILITY SameMajorVersion)
install(
FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
COMPONENT ${PROJECT_NAME}-dev)
export(
EXPORT ${PROJECT_NAME}-config
NAMESPACE Amarula::
FILE ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake)
104 changes: 104 additions & 0 deletions CMakePresets.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
{
"version": 6,
"configurePresets": [
{
"name": "default-release",
"displayName": "Default Release",
"description": "Default configuration for release with runtime components only",
"generator": "Ninja",
"binaryDir": "${sourceDir}/build/${presetName}",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release"
}
},
{
"name": "default-develop",
"displayName": "Default Config for development",
"description": "Default configuration for development, release runtime and dev components, build tests ",
"inherits": "default-release",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"BUILD_TESTS": "ON",
"CMAKE_EXPORT_COMPILE_COMMANDS": "ON",
"BUILD_DOCS": "ON",
"BUILD_EXAMPLES": "ON"
}
}
],
"buildPresets": [
{
"name": "default-release",
"configurePreset": "default-release"
},
{
"name": "default-develop",
"configurePreset": "default-develop"
},
{
"name": "default-documentation",
"configurePreset": "default-develop",
"targets": "doxygen_docs"
}
],
"testPresets": [
{
"name": "default-develop",
"configurePreset": "default-develop",
"output": {
"outputOnFailure": true
}
}
],
"packagePresets": [
{
"name": "default-develop",
"configurePreset": "default-develop",
"generators": [
"TGZ"
],
"variables": {
"CPACK_COMPONENTS_GROUPING": "ALL_COMPONENTS_IN_ONE",
"CPACK_PACKAGE_CONTACT": "develop@amarulasolutions.com",
"CPACK_PACKAGE_VENDOR": "amarulasolutions"
},
"packageDirectory": "packages-${presetName}"
}
],
"workflowPresets": [
{
"name": "default-develop",
"steps": [
{
"type": "configure",
"name": "default-develop"
},
{
"type": "build",
"name": "default-develop"
},
{
"type": "test",
"name": "default-develop"
},
{
"type": "package",
"name": "default-develop"

}
]
},
{
"name": "default-documentation",
"steps": [
{
"type": "configure",
"name": "default-develop"
},
{
"type": "build",
"name": "default-documentation"
}
]
}
]
}
Empty file added LICENSE
Empty file.
5 changes: 5 additions & 0 deletions cmake/Config.cmake.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
@PACKAGE_INIT@
include(CMakeFindDependencyMacro)
find_dependency(PkgConfig)
pkg_check_modules(GIO_UNIX REQUIRED IMPORTED_TARGET gio-unix-2.0)
include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@-config.cmake")
Loading