Conversation
- Include BuildFlatBuffers.cmake conditionally in xpflatbuffers - Improve flatc executable detection with fallback logic - Consolidate FlatcTargets and FlatBuffersSharedTargets into single export - Add DEFAULT_TARGETS to extern package configuration - Simplify package configuration by removing redundant includes
|
looks like there are issues with these changes and the |
|
it appears the CMake Error of diff --git a/CMake/xpflatbuffers.cmake b/CMake/xpflatbuffers.cmake
index 4fda7e99..b28eb25a 100644
--- a/CMake/xpflatbuffers.cmake
+++ b/CMake/xpflatbuffers.cmake
@@ -14,7 +14,7 @@ function(xpFlatBuffersBuild)
set(P_GENERATED_INCLUDES_DIR ${CMAKE_CURRENT_BINARY_DIR}/fbs)
endif()
if(NOT COMMAND build_flatbuffers)
- include(${CMAKE_CURRENT_LIST_DIR}/BuildFlatBuffers.cmake)
+ include(${CMAKE_CURRENT_FUNCTION_LIST_DIR}/BuildFlatBuffers.cmake)
endif()
build_flatbuffers("${P_SCHEMAS}" "${P_SCHEMA_INCLUDE_DIRS}" ${P_CUSTOM_TARGET_NAM>
"${P_ADDITIONAL_DEPS}" "${P_GENERATED_INCLUDES_DIR}"see docs https://cmake.org/cmake/help/latest/variable/CMAKE_CURRENT_FUNCTION_LIST_DIR.html |
|
but the CMake Warning and CMake Error appears to be a CMake implementation limitation rather than a CPS specification limitation. The CPS specification supports executables, but perhaps CMake's CPS implementation hasn't caught up with the full specification yet? CMake CPS Executable Component Limitation AnalysisIssue SummaryThe warning message you're encountering: Indicates that CMake's CPS implementation doesn't properly handle executable components, even though the CPS specification supports them. Root Cause: CMake Implementation LimitationThis is a CMake implementation limitation rather than a CPS specification limitation. Supporting Evidence1. CPS Specification Officially Supports ExecutablesURL: https://cps-org.github.io/cps/schema.html The official CPS schema documentation explicitly lists
2. CMake Acknowledges Implementation LimitationsURL: https://www.kitware.com/common-package-specification-is-out-the-gate/ Kitware's official announcement states:
This confirms CMake's CPS implementation has known limitations and gaps. 3. CMake Documentation Shows Limited Executable SupportURL: https://cmake.org/cmake/help/latest/command/install.html The install(PACKAGE_INFO) documentation mentions CPS export but doesn't provide comprehensive details about executable component handling, showing limited documentation for executable components in CPS context. Technical DetailsCPS Specification vs CMake Implementation
CPS Component Types (Officially Supported)According to the CPS schema, the following component types are officially supported:
Current Status
Recommendations
ConclusionThe evidence clearly shows this is a CMake implementation gap, not a CPS specification limitation. The CPS specification properly defines executable components, but CMake's implementation hasn't caught up with the full specification yet. |
more CPS-ready...