mirror of
https://github.com/curl/curl.git
synced 2025-09-11 22:52:42 +03:00
cmake: set version for project()
and add CPack support
Note: the version like `8.11.0-DEV` is not a valid version for `project()`, so need to extract the major, minor and patch parts. Previous, manual, `CURL_VERSION` macro is defined by `project()` after this patch, so rename existing `CURL_VERSION*` variables to `_curl_version*`. Closes #15281
This commit is contained in:
parent
1b155f034a
commit
fbc0da376f
|
@ -63,13 +63,34 @@ foreach(_cache_var ${_cache_vars})
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
|
function(curl_dumpvars) # Dump all defined variables with their values
|
||||||
|
message("::group::CMake Variable Dump")
|
||||||
|
get_cmake_property(_vars VARIABLES)
|
||||||
|
foreach(_var ${_vars})
|
||||||
|
message("${_var} = ${${_var}}")
|
||||||
|
endforeach()
|
||||||
|
message("::endgroup::")
|
||||||
|
endfunction()
|
||||||
|
|
||||||
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake;${CMAKE_MODULE_PATH}")
|
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake;${CMAKE_MODULE_PATH}")
|
||||||
include(Utilities)
|
include(Utilities)
|
||||||
include(Macros)
|
include(Macros)
|
||||||
include(CMakeDependentOption)
|
include(CMakeDependentOption)
|
||||||
include(CheckCCompilerFlag)
|
include(CheckCCompilerFlag)
|
||||||
|
|
||||||
project(CURL C)
|
file(STRINGS "${CMAKE_CURRENT_SOURCE_DIR}/include/curl/curlver.h" _curl_version_h_contents REGEX "#define LIBCURL_VERSION( |_NUM )")
|
||||||
|
string(REGEX MATCH "#define LIBCURL_VERSION \"[^\"]*" _curl_version ${_curl_version_h_contents})
|
||||||
|
string(REGEX REPLACE "[^\"]+\"" "" _curl_version ${_curl_version})
|
||||||
|
string(REGEX MATCH "#define LIBCURL_VERSION_NUM 0x[0-9a-fA-F]+" _curl_version_num ${_curl_version_h_contents})
|
||||||
|
string(REGEX REPLACE "[^0]+0x" "" _curl_version_num ${_curl_version_num})
|
||||||
|
unset(_curl_version_h_contents)
|
||||||
|
|
||||||
|
message(STATUS "curl version=[${_curl_version}]")
|
||||||
|
|
||||||
|
string(REGEX REPLACE "([0-9]+\.[0-9]+\.[0-9]+).+" "\\1" _curl_version_sem "${_curl_version}")
|
||||||
|
project(CURL
|
||||||
|
VERSION "${_curl_version_sem}"
|
||||||
|
LANGUAGES C)
|
||||||
|
|
||||||
unset(_target_flags)
|
unset(_target_flags)
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
|
@ -110,24 +131,6 @@ if(CMAKE_CROSSCOMPILING)
|
||||||
"${CMAKE_SYSTEM_NAME}/${CMAKE_SYSTEM_PROCESSOR}")
|
"${CMAKE_SYSTEM_NAME}/${CMAKE_SYSTEM_PROCESSOR}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
function(curl_dumpvars) # Dump all defined variables with their values
|
|
||||||
message("::group::CMake Variable Dump")
|
|
||||||
get_cmake_property(_vars VARIABLES)
|
|
||||||
foreach(_var ${_vars})
|
|
||||||
message("${_var} = ${${_var}}")
|
|
||||||
endforeach()
|
|
||||||
message("::endgroup::")
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
file(STRINGS "${CURL_SOURCE_DIR}/include/curl/curlver.h" _curl_version_h_contents REGEX "#define LIBCURL_VERSION( |_NUM )")
|
|
||||||
string(REGEX MATCH "#define LIBCURL_VERSION \"[^\"]*" CURL_VERSION ${_curl_version_h_contents})
|
|
||||||
string(REGEX REPLACE "[^\"]+\"" "" CURL_VERSION ${CURL_VERSION})
|
|
||||||
string(REGEX MATCH "#define LIBCURL_VERSION_NUM 0x[0-9a-fA-F]+" CURL_VERSION_NUM ${_curl_version_h_contents})
|
|
||||||
string(REGEX REPLACE "[^0]+0x" "" CURL_VERSION_NUM ${CURL_VERSION_NUM})
|
|
||||||
unset(_curl_version_h_contents)
|
|
||||||
|
|
||||||
message(STATUS "curl version=[${CURL_VERSION}]")
|
|
||||||
|
|
||||||
if(CMAKE_C_COMPILER_TARGET)
|
if(CMAKE_C_COMPILER_TARGET)
|
||||||
set(OS "\"${CMAKE_C_COMPILER_TARGET}\"")
|
set(OS "\"${CMAKE_C_COMPILER_TARGET}\"")
|
||||||
else()
|
else()
|
||||||
|
@ -2024,8 +2027,8 @@ if(NOT CURL_DISABLE_INSTALL)
|
||||||
set(CC "${CMAKE_C_COMPILER}")
|
set(CC "${CMAKE_C_COMPILER}")
|
||||||
# TODO: probably put a -D... options here?
|
# TODO: probably put a -D... options here?
|
||||||
set(CONFIGURE_OPTIONS "")
|
set(CONFIGURE_OPTIONS "")
|
||||||
set(CURLVERSION "${CURL_VERSION}")
|
set(CURLVERSION "${_curl_version}")
|
||||||
set(VERSIONNUM "${CURL_VERSION_NUM}")
|
set(VERSIONNUM "${_curl_version_num}")
|
||||||
set(prefix "${CMAKE_INSTALL_PREFIX}")
|
set(prefix "${CMAKE_INSTALL_PREFIX}")
|
||||||
set(exec_prefix "\${prefix}")
|
set(exec_prefix "\${prefix}")
|
||||||
if(IS_ABSOLUTE ${CMAKE_INSTALL_INCLUDEDIR})
|
if(IS_ABSOLUTE ${CMAKE_INSTALL_INCLUDEDIR})
|
||||||
|
@ -2210,7 +2213,7 @@ if(NOT CURL_DISABLE_INSTALL)
|
||||||
include(CMakePackageConfigHelpers)
|
include(CMakePackageConfigHelpers)
|
||||||
write_basic_package_version_file(
|
write_basic_package_version_file(
|
||||||
"${_version_config}"
|
"${_version_config}"
|
||||||
VERSION ${CURL_VERSION}
|
VERSION ${_curl_version}
|
||||||
COMPATIBILITY SameMajorVersion)
|
COMPATIBILITY SameMajorVersion)
|
||||||
file(READ "${_version_config}" _generated_version_config)
|
file(READ "${_version_config}" _generated_version_config)
|
||||||
file(WRITE "${_version_config}" "
|
file(WRITE "${_version_config}" "
|
||||||
|
@ -2265,6 +2268,11 @@ if(NOT CURL_DISABLE_INSTALL)
|
||||||
OWNER_READ OWNER_WRITE OWNER_EXECUTE
|
OWNER_READ OWNER_WRITE OWNER_EXECUTE
|
||||||
GROUP_READ GROUP_EXECUTE
|
GROUP_READ GROUP_EXECUTE
|
||||||
WORLD_READ WORLD_EXECUTE)
|
WORLD_READ WORLD_EXECUTE)
|
||||||
|
|
||||||
|
# The `-DEV` part is important
|
||||||
|
string(REGEX REPLACE "([0-9]+\.[0-9]+)\.([0-9]+.*)" "\\2" CPACK_PACKAGE_VERSION_PATCH "${_curl_version}")
|
||||||
|
set(CPACK_GENERATOR "TGZ")
|
||||||
|
include(CPack)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Save build info for test runner to pick up and log
|
# Save build info for test runner to pick up and log
|
||||||
|
|
Loading…
Reference in New Issue
Block a user