优化
This commit is contained in:
@@ -177,3 +177,6 @@ Before handoff, verify:
|
||||
- Public headers compile alone and the standalone install consumer works.
|
||||
- Adminive still builds/tests if the public Structive contract changed.
|
||||
- Only checks actually run are reported as passing.
|
||||
## Release workflow
|
||||
|
||||
Structive currently ships without third-party library dependencies. Standalone install/export must stay self-contained apart from the C++ standard library, and `RELEASE.md` must remain part of the installed release metadata. The source tree does not declare an outbound license for Structive project-owned code; do not generate one without an explicit owner decision.
|
||||
|
||||
@@ -87,3 +87,8 @@ When Structive is edited inside Adminive, also run the relevant Adminive tests b
|
||||
6. Runtime adapter result semantics, including copy-write support.
|
||||
7. Extension-to-Core dependency direction.
|
||||
8. Public-header independence, compile-fail matrix, install consumer, and Adminive consumer compatibility.
|
||||
## Release policy
|
||||
|
||||
- Structive currently has no third-party library dependency in its standalone package. Do not add one casually or inherit Adminive adapter dependencies.
|
||||
- Keep `RELEASE.md` installed with the standalone package and keep the install-consumer gate green.
|
||||
- No outbound license for Structive project-owned code is declared in this tree. Do not invent or infer one.
|
||||
|
||||
@@ -23,6 +23,7 @@ if(STRUCTIVE_INSTALL)
|
||||
configure_package_config_file("${CMAKE_CURRENT_LIST_DIR}/cmake/StructiveConfig.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/StructiveConfig.cmake" INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/Structive")
|
||||
write_basic_package_version_file("${CMAKE_CURRENT_BINARY_DIR}/StructiveConfigVersion.cmake" VERSION "${PROJECT_VERSION}" COMPATIBILITY SameMajorVersion)
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/StructiveConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/StructiveConfigVersion.cmake" DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/Structive")
|
||||
install(FILES "${CMAKE_CURRENT_LIST_DIR}/RELEASE.md" "${CMAKE_CURRENT_LIST_DIR}/THIRD_PARTY_NOTICES.md" DESTINATION "${CMAKE_INSTALL_DATADIR}/Structive")
|
||||
endif()
|
||||
if(PROJECT_IS_TOP_LEVEL AND STRUCTIVE_BUILD_TESTS AND STRUCTIVE_INSTALL)
|
||||
add_test(NAME structive_install_consumer_test COMMAND "${CMAKE_COMMAND}" "-DSTRUCTIVE_SOURCE_DIR=${CMAKE_CURRENT_LIST_DIR}" "-DSTRUCTIVE_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR}" "-DSTRUCTIVE_CONFIG=$<CONFIG>" "-DSTRUCTIVE_GENERATOR=${CMAKE_GENERATOR}" "-DSTRUCTIVE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM}" "-DSTRUCTIVE_GENERATOR_TOOLSET=${CMAKE_GENERATOR_TOOLSET}" -P "${CMAKE_CURRENT_LIST_DIR}/cmake/RunInstallConsumer.cmake")
|
||||
|
||||
@@ -365,3 +365,5 @@ Standalone configuration exposes `STRUCTIVE_BUILD_EXAMPLES`, `STRUCTIVE_BUILD_TE
|
||||
- [设计理念与原则(中文)](docs/DESIGN.zh-CN.md)
|
||||
- [核心使用指南(中文)](docs/CORE_GUIDE.zh-CN.md)
|
||||
- [扩展体系(中文)](docs/EXTENSIONS.zh-CN.md)
|
||||
- [Release Policy](RELEASE.md)
|
||||
- [Third-Party Notices](THIRD_PARTY_NOTICES.md)
|
||||
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
# Structive Release Policy
|
||||
|
||||
Structive Core and the bundled Presentation extension have no third-party library dependency in the current standalone CMake package. Keep that property unless a deliberate architecture change requires otherwise.
|
||||
|
||||
The Structive source tree does not currently declare an outbound license for project-owned code. Do not infer a project license from Adminive or from dependencies used by an embedding project.
|
||||
|
||||
Standalone release verification must keep these gates green:
|
||||
|
||||
- Debug and Release tests.
|
||||
- Public-header independent compilation.
|
||||
- Compile-fail contract matrix.
|
||||
- Standalone install/export consumer using `find_package(Structive CONFIG)`.
|
||||
- Sanitizer/concurrency checks where supported.
|
||||
- Adminive consumer tests when Structive public behavior changes.
|
||||
|
||||
Installed Structive packages should contain Structive's public headers, CMake package metadata, and this release policy only; they must not acquire Adminive adapter/UI/HTTP dependencies.
|
||||
@@ -0,0 +1,5 @@
|
||||
# Structive Third-Party Notices
|
||||
|
||||
The current standalone Structive Core and Presentation extension do not bundle or require third-party libraries beyond the C++ standard library.
|
||||
|
||||
This notice does not declare or grant an outbound license for Structive project-owned code. No such project license is declared by this source tree.
|
||||
@@ -20,6 +20,11 @@ execute_process(COMMAND ${install_command} RESULT_VARIABLE install_result)
|
||||
if(NOT install_result EQUAL 0)
|
||||
message(FATAL_ERROR "Failed to install Structive")
|
||||
endif()
|
||||
foreach(path IN ITEMS "${prefix}/share/Structive/RELEASE.md" "${prefix}/share/Structive/THIRD_PARTY_NOTICES.md")
|
||||
if(NOT EXISTS "${path}")
|
||||
message(FATAL_ERROR "Structive install is missing release metadata: ${path}")
|
||||
endif()
|
||||
endforeach()
|
||||
set(configure_command "${CMAKE_COMMAND}" -S "${STRUCTIVE_SOURCE_DIR}/install_consumer" -B "${consumer_binary}" "-DCMAKE_PREFIX_PATH=${prefix}")
|
||||
if(DEFINED STRUCTIVE_GENERATOR AND NOT STRUCTIVE_GENERATOR STREQUAL "")
|
||||
list(APPEND configure_command -G "${STRUCTIVE_GENERATOR}")
|
||||
|
||||
Reference in New Issue
Block a user