WIP checkpoint
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
This commit is contained in:
+55
-34
@@ -89,37 +89,42 @@ endif()
|
||||
|
||||
set(_cmake_package_dest ${CPACK_BINARY_DIR}/${CPACK_CMAKE_PACKAGE_FILE})
|
||||
|
||||
string(REPLACE "." ";" _version_componets "${CPACK_DESIRED_CMAKE_VERSION}")
|
||||
list(GET _version_componets 0 _major_version)
|
||||
list(GET _version_componets 1 _minor_version)
|
||||
|
||||
set(_url_version_tag "v${_major_version}.${_minor_version}")
|
||||
set(_package_url "https://cmake.org/files/${_url_version_tag}/${CPACK_CMAKE_PACKAGE_FILE}")
|
||||
|
||||
message(STATUS "Downloading CMake ${CPACK_DESIRED_CMAKE_VERSION} for packaging...")
|
||||
download_file(
|
||||
URL ${_package_url}
|
||||
TARGET_FILE ${_cmake_package_dest}
|
||||
EXPECTED_HASH ${CPACK_CMAKE_PACKAGE_HASH}
|
||||
RESULTS _results
|
||||
)
|
||||
list(GET _results 0 _status_code)
|
||||
|
||||
if (${_status_code} EQUAL 0 AND EXISTS ${_cmake_package_dest})
|
||||
message(STATUS "Package found and verified!")
|
||||
if(EXISTS ${_cmake_package_dest})
|
||||
message(STATUS "CMake ${CPACK_DESIRED_CMAKE_VERSION} found")
|
||||
else()
|
||||
file(REMOVE ${_cmake_package_dest})
|
||||
list(REMOVE_AT _results 0)
|
||||
# download it
|
||||
string(REPLACE "." ";" _version_componets "${CPACK_DESIRED_CMAKE_VERSION}")
|
||||
list(GET _version_componets 0 _major_version)
|
||||
list(GET _version_componets 1 _minor_version)
|
||||
|
||||
set(_error_message "An error occurred, code ${_status_code}. URL ${_package_url} - ${_results}")
|
||||
set(_url_version_tag "v${_major_version}.${_minor_version}")
|
||||
set(_package_url "https://cmake.org/files/${_url_version_tag}/${CPACK_CMAKE_PACKAGE_FILE}")
|
||||
|
||||
if(${_status_code} EQUAL 1)
|
||||
string(APPEND _error_message
|
||||
" Please double check the CPACK_CMAKE_PACKAGE_FILE and "
|
||||
"CPACK_CMAKE_PACKAGE_HASH properties before trying again.")
|
||||
message(STATUS "Downloading CMake ${CPACK_DESIRED_CMAKE_VERSION} for packaging...")
|
||||
download_file(
|
||||
URL ${_package_url}
|
||||
TARGET_FILE ${_cmake_package_dest}
|
||||
EXPECTED_HASH ${CPACK_CMAKE_PACKAGE_HASH}
|
||||
RESULTS _results
|
||||
)
|
||||
list(GET _results 0 _status_code)
|
||||
|
||||
if (${_status_code} EQUAL 0 AND EXISTS ${_cmake_package_dest})
|
||||
message(STATUS "CMake ${CPACK_DESIRED_CMAKE_VERSION} found")
|
||||
else()
|
||||
file(REMOVE ${_cmake_package_dest})
|
||||
list(REMOVE_AT _results 0)
|
||||
|
||||
set(_error_message "An error occurred, code ${_status_code}. URL ${_package_url} - ${_results}")
|
||||
|
||||
if(${_status_code} EQUAL 1)
|
||||
string(APPEND _error_message
|
||||
" Please double check the CPACK_CMAKE_PACKAGE_FILE and "
|
||||
"CPACK_CMAKE_PACKAGE_HASH properties before trying again.")
|
||||
endif()
|
||||
|
||||
message(FATAL_ERROR ${_error_message})
|
||||
endif()
|
||||
|
||||
message(FATAL_ERROR ${_error_message})
|
||||
endif()
|
||||
|
||||
install(FILES ${_cmake_package_dest}
|
||||
@@ -192,17 +197,19 @@ include(CPack REQUIRED)
|
||||
|
||||
function(ly_configure_cpack_component ly_configure_cpack_component_NAME)
|
||||
|
||||
set(options REQUIRED)
|
||||
set(oneValueArgs DISPLAY_NAME DESCRIPTION LICENSE_NAME LICENSE_FILE)
|
||||
set(options REQUIRED DISABLED)
|
||||
set(oneValueArgs DISPLAY_NAME DESCRIPTION LICENSE_NAME LICENSE_FILE DEPENDS)
|
||||
set(multiValueArgs)
|
||||
|
||||
cmake_parse_arguments(ly_configure_cpack_component "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||
|
||||
# default to optional
|
||||
set(component_type DISABLED)
|
||||
unset(component_type)
|
||||
|
||||
if(ly_configure_cpack_component_DISABLED)
|
||||
list(APPEND component_type DISABLED)
|
||||
endif()
|
||||
if(ly_configure_cpack_component_REQUIRED)
|
||||
set(component_type REQUIRED)
|
||||
list(APPEND component_type REQUIRED)
|
||||
endif()
|
||||
|
||||
set(license_name ${DEFAULT_LICENSE_NAME})
|
||||
@@ -225,9 +232,23 @@ endfunction()
|
||||
# configure ALL components here
|
||||
ly_configure_cpack_component(
|
||||
${CMAKE_INSTALL_DEFAULT_COMPONENT_NAME} REQUIRED
|
||||
DISPLAY_NAME "${PROJECT_NAME} Core"
|
||||
DESCRIPTION "${PROJECT_NAME} Headers, Libraries and Tools"
|
||||
DISPLAY_NAME "${PROJECT_NAME}"
|
||||
DESCRIPTION "${PROJECT_NAME} Headers, scripts and common files"
|
||||
)
|
||||
foreach(conf IN LISTS CMAKE_CONFIGURATION_TYPES)
|
||||
string(TOUPPER ${conf} UCONF)
|
||||
unset(flags)
|
||||
if(${conf} STREQUAL profile)
|
||||
set(flags REQUIRED)
|
||||
else()
|
||||
set(flags DISABLED)
|
||||
endif()
|
||||
ly_configure_cpack_component(
|
||||
${CMAKE_INSTALL_DEFAULT_COMPONENT_NAME}_${UCONF} ${flags}
|
||||
DISPLAY_NAME "${PROJECT_NAME} (${conf})"
|
||||
DESCRIPTION "${PROJECT_NAME} Libraries and Tools in ${conf}"
|
||||
)
|
||||
endforeach()
|
||||
|
||||
if(LY_INSTALLER_DOWNLOAD_URL)
|
||||
strip_trailing_slash(${LY_INSTALLER_DOWNLOAD_URL} LY_INSTALLER_DOWNLOAD_URL)
|
||||
|
||||
Reference in New Issue
Block a user