From 35d7c26757ce8c017e266f2c4414668ca1f7758a Mon Sep 17 00:00:00 2001 From: black-desk Date: Thu, 1 Feb 2024 16:04:59 +0800 Subject: [PATCH 1/3] fix: upgrade PFL.cmake Upgrade PFL.cmake to fix ocppi-config.cmake file not found issue. Signed-off-by: black-desk --- cmake/PFL.cmake | 256 ++++++++++++++++++++++++++++-------------------- 1 file changed, 149 insertions(+), 107 deletions(-) diff --git a/cmake/PFL.cmake b/cmake/PFL.cmake index 7d987cb..de4c8c3 100644 --- a/cmake/PFL.cmake +++ b/cmake/PFL.cmake @@ -26,7 +26,7 @@ function(pfl_init) cmake_parse_arguments(PFL_INIT "" "INSTALL;ENABLE_TESTING;BUILD_EXAMPLES" "EXTERNALS" ${ARGN}) - message(STATUS "PFL: --==Version: v0.2.8==--") + message(STATUS "PFL: --==Version: v0.2.10==--") set(PFL_ENABLE_TESTING ${PFL_INIT_ENABLE_TESTING} @@ -77,27 +77,14 @@ endfunction() # This function is used to add libraries under the `libs` directory. It just # takes in a string list contains the directory name under `libs`. function(pfl_add_libraries) - cmake_parse_arguments(PFL_ADD_LIBRARIES "" "VERSION" "LIBS" ${ARGN}) + cmake_parse_arguments(PFL_ADD_LIBRARIES "" "" "LIBS" ${ARGN}) - message( - STATUS - "PFL:${PFL_MESSAGE_INDENT} Adding libraries at ${CMAKE_CURRENT_SOURCE_DIR}" - ) - - set(PFL_MESSAGE_INDENT "${PFL_MESSAGE_INDENT} ") - - cmake_path(GET CMAKE_CURRENT_SOURCE_DIR FILENAME TARGET_DIR_NAME) - - if("${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${PROJECT_SOURCE_DIR}") - set(TARGET_DIR_NAME ${PROJECT_NAME}) - endif() - - string(REPLACE " " "_" TARGET_NAME "${TARGET_DIR_NAME}") + message(STATUS "PFL: Adding libraries at ${CMAKE_CURRENT_SOURCE_DIR}") - if(PFL_PREFIX) - set(PFL_PREFIX "${PFL_PREFIX}::${TARGET_NAME}") - else() - set(PFL_PREFIX "${TARGET_NAME}") + if(NOT "${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${PROJECT_SOURCE_DIR}") + message( + FATAL_ERROR + "PFL: pfl_add_libraries can only be called in \$PROJECT_SOURCE_DIR") endif() foreach(LIB ${PFL_ADD_LIBRARIES_LIBS}) @@ -110,30 +97,46 @@ function(pfl_add_libraries) include(GNUInstallDirs) - if(EXISTS - ${CMAKE_CURRENT_SOURCE_DIR}/misc/cmake/${TARGET_NAME}-config.cmake.in) - include(CMakePackageConfigHelpers) - # This will be used to replace @PACKAGE_cmakeModulesDir@ - set(cmakeModulesDir cmake) - - configure_package_config_file( - misc/cmake/${TARGET_NAME}-config.cmake.in - misc/cmake/${TARGET_NAME}-config.cmake - INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${TARGET_NAME} - PATH_VARS cmakeModulesDir - NO_SET_AND_CHECK_MACRO NO_CHECK_REQUIRED_COMPONENTS_MACRO) - - write_basic_package_version_file( - ${CMAKE_CURRENT_BINARY_DIR}/misc/cmake/${TARGET_NAME}-config-version.cmake - VERSION ${PFL_ADD_LIBRARIES_VERSION} - COMPATIBILITY SameMajorVersion) + string(TOLOWER "${PROJECT_NAME}" LOWER_PROJECT_NAME) + set(CONFIG_FILE misc/cmake/${LOWER_PROJECT_NAME}-config.cmake) + set(VERSION_FILE misc/cmake/${LOWER_PROJECT_NAME}-config-version.cmake) + if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${CONFIG_FILE}.in) + set(CONFIG_FILE misc/cmake/${PROJECT_NAME}Config.cmake) + set(VERSION_FILE misc/cmake/${LOWER_PROJECT_NAME}ConfigVersion.cmake) + endif() - install( - FILES - ${CMAKE_CURRENT_BINARY_DIR}/misc/cmake/${TARGET_NAME}-config.cmake - ${CMAKE_CURRENT_BINARY_DIR}/misc/cmake/${TARGET_NAME}-config-version.cmake - DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${TARGET_NAME}) + if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${CONFIG_FILE}.in) + message(STATUS "PFL: tried ") + message( + WARNING + "PFL: tried ${CMAKE_CURRENT_SOURCE_DIR}/misc/cmake/${PROJECT_NAME}Config.cmake.in" + ) + message( + FATAL_ERROR + "PFL: cmake config file not found." + "${CMAKE_CURRENT_SOURCE_DIR}/misc/cmake/${LOWER_PROJECT_NAME}-config.cmake.in" + "${CMAKE_CURRENT_SOURCE_DIR}/misc/cmake/${PROJECT_NAME}Config.cmake.in") endif() + + include(CMakePackageConfigHelpers) + # This will be used to replace @PACKAGE_cmakeModulesDir@ + set(cmakeModulesDir cmake) + + configure_package_config_file( + ${CMAKE_CURRENT_SOURCE_DIR}/${CONFIG_FILE}.in + ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_FILE} + INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} + PATH_VARS cmakeModulesDir + NO_SET_AND_CHECK_MACRO NO_CHECK_REQUIRED_COMPONENTS_MACRO) + + write_basic_package_version_file( + ${VERSION_FILE} + VERSION ${PFL_ADD_LIBRARIES_VERSION} + COMPATIBILITY SameMajorVersion) + + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_FILE} + ${CMAKE_CURRENT_BINARY_DIR}/${VERSION_FILE} + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}) endfunction() # This function is used to add a library. @@ -187,13 +190,20 @@ function(pfl_add_library) string(REPLACE "::" "__" TARGET_PREFIX "${PFL_PREFIX}") set(TARGET_NAME "${TARGET_PREFIX}__${TARGET_NAME}") - string(REPLACE "__" "::" TARGET_EXPORT_NAME "${TARGET_NAME}") + string(REPLACE "__" "::" TARGET_ALIAS "${TARGET_NAME}") + + if(NOT PFL_ADD_LIBRARY_OUTPUT_NAME) + set(PFL_ADD_LIBRARY_OUTPUT_NAME ${TARGET_NAME}) + message( + WARNING + "PFL: OUTPUT_NAME of ${TARGET_ALIAS} not set, using ${PFL_ADD_LIBRARY_OUTPUT_NAME}" + ) + endif() message( STATUS - "PFL:${PFL_MESSAGE_INDENT} Adding library ${TARGET_NAME} as ${TARGET_EXPORT_NAME} at ${CMAKE_CURRENT_SOURCE_DIR}" + "PFL: Adding library ${PFL_ADD_LIBRARY_OUTPUT_NAME} as ${TARGET_ALIAS} at ${CMAKE_CURRENT_SOURCE_DIR}" ) - set(PFL_MESSAGE_INDENT "${PFL_MESSAGE_INDENT} ") __pfl_configure_files(INS ${PFL_ADD_LIBRARY_INS} HEADERS PFL_ADD_LIBRARY_HEADERS SOURCES PFL_ADD_LIBRARY_SOURCES) @@ -212,17 +222,15 @@ function(pfl_add_library) PROPERTIES SOVERSION ${PFL_ADD_LIBRARY_SOVERSION}) endif() - if(NOT "${TARGET_EXPORT_NAME}" STREQUAL "${TARGET_NAME}") - add_library("${TARGET_EXPORT_NAME}" ALIAS "${TARGET_NAME}") + if(NOT "${TARGET_ALIAS}" STREQUAL "${TARGET_NAME}") + add_library("${TARGET_ALIAS}" ALIAS "${TARGET_NAME}") endif() set_target_properties("${TARGET_NAME}" PROPERTIES EXPORT_NAME ${TARGET_DIR_NAME}) - if(PFL_ADD_LIBRARY_OUTPUT_NAME) - set_target_properties("${TARGET_NAME}" - PROPERTIES OUTPUT_NAME ${PFL_ADD_LIBRARY_OUTPUT_NAME}) - endif() + set_target_properties("${TARGET_NAME}" + PROPERTIES OUTPUT_NAME ${PFL_ADD_LIBRARY_OUTPUT_NAME}) target_sources( ${TARGET_NAME} @@ -255,41 +263,58 @@ function(pfl_add_library) if(PFL_INSTALL AND NOT PFL_ADD_LIBRARY_INTERNAL) include(GNUInstallDirs) + set(EXPORT_NAME ${PFL_ADD_LIBRARY_OUTPUT_NAME}) + if(NOT EXPORT_NAME) + set(EXPORT_NAME ${TARGET_NAME}) + endif() + install( TARGETS "${TARGET_NAME}" - EXPORT "${TARGET_NAME}" + EXPORT "${EXPORT_NAME}" FILE_SET HEADERS) install( - EXPORT "${TARGET_NAME}" + EXPORT "${EXPORT_NAME}" DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} - FILE "${TARGET_NAME}.cmake" + FILE "${EXPORT_NAME}.cmake" NAMESPACE ${PFL_PREFIX}::) - if(EXISTS - ${CMAKE_CURRENT_SOURCE_DIR}/misc/cmake/${TARGET_NAME}-config.cmake.in) - include(CMakePackageConfigHelpers) - # This will be used to replace @PACKAGE_cmakeModulesDir@ - set(cmakeModulesDir cmake) - - configure_package_config_file( - misc/cmake/${TARGET_NAME}-config.cmake.in - misc/cmake/${TARGET_NAME}-config.cmake - INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${TARGET_NAME} - PATH_VARS cmakeModulesDir - NO_SET_AND_CHECK_MACRO NO_CHECK_REQUIRED_COMPONENTS_MACRO) - - write_basic_package_version_file( - ${CMAKE_CURRENT_BINARY_DIR}/misc/cmake/${TARGET_NAME}-config-version.cmake - VERSION ${PFL_ADD_LIBRARY_VERSION} - COMPATIBILITY SameMajorVersion) - - install( - FILES - ${CMAKE_CURRENT_BINARY_DIR}/misc/cmake/${TARGET_NAME}-config.cmake - ${CMAKE_CURRENT_BINARY_DIR}/misc/cmake/${TARGET_NAME}-config-version.cmake - DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}) + string(TOLOWER "${EXPORT_NAME}" LOWER_EXPORT_NAME) + set(CONFIG_FILE misc/cmake/${LOWER_EXPORT_NAME}-config.cmake) + set(VERSION_FILE misc/cmake/${LOWER_EXPORT_NAME}-config-version.cmake) + if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${CONFIG_FILE}.in) + set(CONFIG_FILE misc/cmake/${EXPORT_NAME}Config.cmake) + set(VERSION_FILE misc/cmake/${LOWER_EXPORT_NAME}ConfigVersion.cmake) endif() + + if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${CONFIG_FILE}.in) + message( + FATAL_ERROR + "PFL: cmake config file not found." + "${CMAKE_CURRENT_SOURCE_DIR}/misc/cmake/${LOWER_EXPORT_NAME}-config.cmake.in" + "${CMAKE_CURRENT_SOURCE_DIR}/misc/cmake/${EXPORT_NAME}Config.cmake.in" + ) + endif() + + include(CMakePackageConfigHelpers) + # This will be used to replace @PACKAGE_cmakeModulesDir@ + set(cmakeModulesDir cmake) + + configure_package_config_file( + ${CMAKE_CURRENT_SOURCE_DIR}/${CONFIG_FILE}.in + ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_FILE} + INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} + PATH_VARS cmakeModulesDir + NO_SET_AND_CHECK_MACRO NO_CHECK_REQUIRED_COMPONENTS_MACRO) + + write_basic_package_version_file( + ${VERSION_FILE} + VERSION ${PFL_ADD_LIBRARIES_VERSION} + COMPATIBILITY SameMajorVersion) + + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_FILE} + ${CMAKE_CURRENT_BINARY_DIR}/${VERSION_FILE} + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}) endif() if(PFL_PREFIX) @@ -298,40 +323,48 @@ function(pfl_add_library) set(PFL_PREFIX "${TARGET_DIR_NAME}") endif() - if(PFL_ENABLE_TESTING AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/tests") - message( - STATUS - "PFL:${PFL_MESSAGE_INDENT} Adding tests for library ${TARGET_EXPORT_NAME} at ${CMAKE_CURRENT_SOURCE_DIR}/tests" - ) - set(PFL_MESSAGE_INDENT "${PFL_MESSAGE_INDENT} ") - add_subdirectory(tests) - string(SUBSTRING "${PFL_MESSAGE_INDENT}" 2 -1 PFL_MESSAGE_INDENT) + if(PFL_ENABLE_TESTING) + if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/tests") + message( + WARNING + "PFL: Tests of library ${TARGET_ALIAS} is enabled but directory ${CMAKE_CURRENT_SOURCE_DIR}/tests not found." + ) + else() + message( + STATUS + "PFL: Adding tests for library ${TARGET_ALIAS} at ${CMAKE_CURRENT_SOURCE_DIR}/tests" + ) + add_subdirectory(tests) + endif() endif() - if(PFL_ADD_LIBRARY_EXAMPLES - AND PFL_BUILD_EXAMPLES - AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/examples") - message( - STATUS - "PFL:${PFL_MESSAGE_INDENT} Adding examples for library ${TARGET_EXPORT_NAME} at ${CMAKE_CURRENT_SOURCE_DIR}/examples" - ) - set(PFL_MESSAGE_INDENT "${PFL_MESSAGE_INDENT} ") - foreach(EXAMPLE ${PFL_ADD_LIBRARY_EXAMPLES}) - add_subdirectory("examples/${EXAMPLE}") - endforeach() - string(SUBSTRING "${PFL_MESSAGE_INDENT}" 2 -1 PFL_MESSAGE_INDENT) + if(PFL_ADD_LIBRARY_EXAMPLES) + if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/examples") + message( + WARNING + "PFL: Examples of library ${TARGET_ALIAS} is enabled but directory ${CMAKE_CURRENT_SOURCE_DIR}/examples not found." + ) + else() + if(PFL_BUILD_EXAMPLES) + message( + STATUS + "PFL: Adding examples for library ${TARGET_ALIAS} at ${CMAKE_CURRENT_SOURCE_DIR}/examples" + ) + foreach(EXAMPLE ${PFL_ADD_LIBRARY_EXAMPLES}) + add_subdirectory("examples/${EXAMPLE}") + endforeach() + endif() + endif() endif() if(PFL_ADD_LIBRARY_APPS AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/apps") message( STATUS - "PFL:${PFL_MESSAGE_INDENT} Adding apps for library ${TARGET_EXPORT_NAME} at ${CMAKE_CURRENT_SOURCE_DIR}/apps" + "PFL: Adding apps for library ${TARGET_ALIAS} at ${CMAKE_CURRENT_SOURCE_DIR}/apps" ) - set(PFL_MESSAGE_INDENT "${PFL_MESSAGE_INDENT} ") foreach(APP ${PFL_ADD_LIBRARY_APPS}) add_subdirectory("apps/${APP}") endforeach() - string(SUBSTRING "${PFL_MESSAGE_INDENT}" 2 -1 PFL_MESSAGE_INDENT) endif() endfunction() @@ -360,15 +393,22 @@ function(pfl_add_executable) string(REPLACE "::" "__" TARGET_PREFIX "${PFL_PREFIX}") - if(TARGET_PREFIX) - set(TARGET_NAME "${TARGET_PREFIX}__${TARGET_NAME}") + set(TARGET_NAME "${TARGET_PREFIX}__${TARGET_NAME}") + + string(REPLACE "__" "::" TARGET_ALIAS "${TARGET_NAME}") + + if(NOT PFL_ADD_EXECUTABLE_OUTPUT_NAME) + set(PFL_ADD_EXECUTABLE_OUTPUT_NAME "${TARGET_NAME}") + message( + WARNING + "PFL: OUTPUT_NAME of ${TARGET_ALIAS} not set, using ${PFL_ADD_EXECUTABLE_OUTPUT_NAME}" + ) endif() message( STATUS - "PFL:${PFL_MESSAGE_INDENT} Adding executable ${TARGET_NAME} at ${CMAKE_CURRENT_SOURCE_DIR}" + "PFL: Adding executable ${PFL_ADD_EXECUTABLE_OUTPUT_NAME} as ${TARGET_ALIAS} at ${CMAKE_CURRENT_SOURCE_DIR}" ) - set(PFL_MESSAGE_INDENT "${PFL_MESSAGE_INDENT} ") __pfl_configure_files( INS ${PFL_ADD_EXECUTABLE_INS} HEADERS PFL_ADD_EXECUTABLE_HEADERS SOURCES @@ -376,11 +416,13 @@ function(pfl_add_executable) add_executable("${TARGET_NAME}" ${PFL_ADD_EXECUTABLE_SOURCES}) - if(PFL_ADD_EXECUTABLE_OUTPUT_NAME) - set_target_properties( - "${TARGET_NAME}" PROPERTIES OUTPUT_NAME ${PFL_ADD_EXECUTABLE_OUTPUT_NAME}) + if(NOT "${TARGET_ALIAS}" STREQUAL "${TARGET_NAME}") + add_executable("${TARGET_ALIAS}" ALIAS "${TARGET_NAME}") endif() + set_target_properties( + "${TARGET_NAME}" PROPERTIES OUTPUT_NAME ${PFL_ADD_EXECUTABLE_OUTPUT_NAME}) + target_sources( ${TARGET_NAME} PUBLIC FILE_SET From 8f33bdfdeb30a710b5088ee533804d0402a4b8e3 Mon Sep 17 00:00:00 2001 From: black-desk Date: Thu, 1 Feb 2024 16:19:18 +0800 Subject: [PATCH 2/3] chore: release 0.2.2 Signed-off-by: black-desk --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 777a94f..cc6cc33 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 3.23) project( ocppi LANGUAGES CXX - VERSION 0.2.1) + VERSION 0.2.2) option(OCPPI_BUILD_EXAMPLES "Build examples of ocppi or not" ${PROJECT_IS_TOP_LEVEL}) From 4b79ff1011ae5c1e487fb4eaefcd0b868147a0ac Mon Sep 17 00:00:00 2001 From: black-desk Date: Thu, 1 Feb 2024 16:31:28 +0800 Subject: [PATCH 3/3] chore: upgrade to 0.2.2 Signed-off-by: black-desk --- debian/changelog | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/debian/changelog b/debian/changelog index 715c3e0..b1d2171 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,5 +1,5 @@ -ocppi (0.2.1-1) UNRELEASED; urgency=medium +ocppi (0.2.2-1) UNRELEASED; urgency=medium * Initial release - -- Chen Linxuan Mon, 29 Jan 2024 19:32:38 +0800 + -- Chen Linxuan Thu, 01 Feb 2024 16:31:08 +0800