-
Notifications
You must be signed in to change notification settings - Fork 47
Expose development installs as project dev version #208
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
eac34b9
99a9a3c
08e1b14
f385531
b901788
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -167,6 +167,21 @@ function(PostgreSQL_add_extension_bitcode LIBRARY_NAME EXTENSION_NAME EXTENSION_ | |
| ) | ||
| endfunction() | ||
|
|
||
| macro(PostgreSQL_append_update_transition SOURCE_VERSION) | ||
| set(UPDATE_TRANSITION_NAME "${EXTENSION_NAME}--${SOURCE_VERSION}--${EXTENSION_VERSION}.sql") | ||
| set(UPDATE_TRANSITION_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${UPDATE_TRANSITION_NAME}") | ||
| set(UPDATE_TRANSITION_CONTENT [=[ | ||
| -- Generated transition from @SOURCE_VERSION@ development installs. | ||
| \echo Use "ALTER EXTENSION @EXTENSION_NAME@ UPDATE TO '@EXTENSION_VERSION@'" to load this file. \quit | ||
| ]=]) | ||
| string(REPLACE "@SOURCE_VERSION@" "${SOURCE_VERSION}" UPDATE_TRANSITION_CONTENT "${UPDATE_TRANSITION_CONTENT}") | ||
| string(REPLACE "@EXTENSION_NAME@" "${EXTENSION_NAME}" UPDATE_TRANSITION_CONTENT "${UPDATE_TRANSITION_CONTENT}") | ||
| string(REPLACE "@EXTENSION_VERSION@" "${EXTENSION_VERSION}" UPDATE_TRANSITION_CONTENT "${UPDATE_TRANSITION_CONTENT}") | ||
| file(WRITE "${UPDATE_TRANSITION_OUTPUT}" "${UPDATE_TRANSITION_CONTENT}") | ||
| list(APPEND UPDATE_TRANSITION_NAMES "${UPDATE_TRANSITION_NAME}") | ||
| list(APPEND UPDATE_TRANSITION_OUTPUTS "${UPDATE_TRANSITION_OUTPUT}") | ||
| endmacro() | ||
|
|
||
| # Helper command to add extensions | ||
| function(PostgreSQL_add_extension LIBRARY_NAME) | ||
| set(options RELOCATABLE) | ||
|
|
@@ -271,25 +286,70 @@ function(PostgreSQL_add_extension LIBRARY_NAME) | |
|
|
||
| # Apply the same compatibility preprocessing to update scripts. | ||
| set(EXTENSION_UPDATES_PROCESSED "") | ||
| set(EXTENSION_UNRELEASED_TRANSITION_EMITTED FALSE) | ||
| set(EXTENSION_PROJECT_DEV_RELEASE_TRANSITION_EMITTED FALSE) | ||
| set(EXTENSION_SOURCE_DEV_RELEASE_TRANSITION_EMITTED FALSE) | ||
| foreach(file ${EXTENSION_UPDATES}) | ||
| get_filename_component(UPDATE_NAME "${file}" NAME) | ||
| set(UPDATE_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${UPDATE_NAME}") | ||
| set(UPDATE_OUTPUT_NAME "${UPDATE_NAME}") | ||
| set(UPDATE_TRANSITION_NAMES "") | ||
| set(UPDATE_TRANSITION_OUTPUTS "") | ||
| set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS "${file}") | ||
| file(READ "${file}" UPDATE_CONTENTS) | ||
| if(UPDATE_OUTPUT_NAME MATCHES "--unreleased\\.sql$" AND NOT EXTENSION_VERSION STREQUAL "unreleased") | ||
| string(REGEX REPLACE "--unreleased\\.sql$" "--${EXTENSION_VERSION}.sql" UPDATE_OUTPUT_NAME "${UPDATE_OUTPUT_NAME}") | ||
| string(REPLACE "UPDATE TO 'unreleased'" "UPDATE TO '${EXTENSION_VERSION}'" UPDATE_CONTENTS "${UPDATE_CONTENTS}") | ||
| string(REPLACE "availability: unreleased" "availability: ${EXTENSION_VERSION}" UPDATE_CONTENTS "${UPDATE_CONTENTS}") | ||
| endif() | ||
|
|
||
| if(NOT EXTENSION_VERSION STREQUAL "unreleased" AND NOT EXTENSION_UNRELEASED_TRANSITION_EMITTED) | ||
| if(UPDATE_OUTPUT_NAME MATCHES "--${EXTENSION_VERSION}\\.sql$") | ||
| # Let old local development installs marked as "unreleased" move to | ||
| # the generated development version, and later to the real release. | ||
| set(EXTENSION_UNRELEASED_TRANSITION_EMITTED TRUE) | ||
| PostgreSQL_append_update_transition("unreleased") | ||
| endif() | ||
| endif() | ||
|
|
||
| if(DEFINED PROJECT_VERSION AND EXTENSION_VERSION STREQUAL PROJECT_VERSION | ||
| AND (NOT EXTENSION_PROJECT_DEV_RELEASE_TRANSITION_EMITTED OR NOT EXTENSION_SOURCE_DEV_RELEASE_TRANSITION_EMITTED)) | ||
|
Comment on lines
+314
to
+315
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
When the next development cycle starts (for example, after releasing 4.5.1 and returning Useful? React with 👍 / 👎. |
||
| if(UPDATE_OUTPUT_NAME MATCHES "^${EXTENSION_NAME}--(.+)--${EXTENSION_VERSION}\\.sql$") | ||
| set(UPDATE_SOURCE_VERSION "${CMAKE_MATCH_1}") | ||
| if(NOT EXTENSION_PROJECT_DEV_RELEASE_TRANSITION_EMITTED) | ||
| set(EXTENSION_PROJECT_DEV_RELEASE_TRANSITION_EMITTED TRUE) | ||
| PostgreSQL_append_update_transition("${PROJECT_VERSION}dev") | ||
| endif() | ||
| if(NOT UPDATE_SOURCE_VERSION STREQUAL "unreleased") | ||
| set(UPDATE_SOURCE_DEV_VERSION "${UPDATE_SOURCE_VERSION}dev") | ||
| if(NOT UPDATE_SOURCE_DEV_VERSION STREQUAL "${PROJECT_VERSION}dev" AND NOT EXTENSION_SOURCE_DEV_RELEASE_TRANSITION_EMITTED) | ||
| set(EXTENSION_SOURCE_DEV_RELEASE_TRANSITION_EMITTED TRUE) | ||
| PostgreSQL_append_update_transition("${UPDATE_SOURCE_DEV_VERSION}") | ||
| endif() | ||
| endif() | ||
| endif() | ||
| endif() | ||
| set(UPDATE_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${UPDATE_OUTPUT_NAME}") | ||
| if(PostgreSQL_VERSION_MAJOR VERSION_LESS "16") | ||
| file(READ "${file}" UPDATE_CONTENTS) | ||
| string(REPLACE "@extschema:${EXTENSION_NAME}@." "" UPDATE_CONTENTS "${UPDATE_CONTENTS}") | ||
| string(REPLACE "@extschema:h3@." "" UPDATE_CONTENTS "${UPDATE_CONTENTS}") | ||
| string(REPLACE "@extschema:postgis@." "" UPDATE_CONTENTS "${UPDATE_CONTENTS}") | ||
| string(REPLACE "@extschema:postgis_raster@." "" UPDATE_CONTENTS "${UPDATE_CONTENTS}") | ||
| file(WRITE "${UPDATE_OUTPUT}" "${UPDATE_CONTENTS}") | ||
| else() | ||
| configure_file("${file}" "${UPDATE_OUTPUT}" COPYONLY) | ||
| endif() | ||
| file(WRITE "${UPDATE_OUTPUT}" "${UPDATE_CONTENTS}") | ||
| configure_file( | ||
| "${UPDATE_OUTPUT}" | ||
| "${EXTENSION_BUILD_EXTENSION_DIR}/${UPDATE_NAME}" | ||
| "${EXTENSION_BUILD_EXTENSION_DIR}/${UPDATE_OUTPUT_NAME}" | ||
| COPYONLY | ||
| ) | ||
| list(APPEND EXTENSION_UPDATES_PROCESSED "${UPDATE_OUTPUT}") | ||
| foreach(UPDATE_TRANSITION_NAME UPDATE_TRANSITION_OUTPUT IN ZIP_LISTS UPDATE_TRANSITION_NAMES UPDATE_TRANSITION_OUTPUTS) | ||
| configure_file( | ||
| "${UPDATE_TRANSITION_OUTPUT}" | ||
| "${EXTENSION_BUILD_EXTENSION_DIR}/${UPDATE_TRANSITION_NAME}" | ||
| COPYONLY | ||
| ) | ||
| list(APPEND EXTENSION_UPDATES_PROCESSED "${UPDATE_TRANSITION_OUTPUT}") | ||
| endforeach() | ||
| endforeach() | ||
|
|
||
| # Install everything else into share-dir | ||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.