CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
137 lines
4.9 KiB
CMake
137 lines
4.9 KiB
CMake
# only include this once
|
|
include_guard(GLOBAL)
|
|
|
|
# ----------------------------------------------------------------------------------------#
|
|
# handle ccache
|
|
# ----------------------------------------------------------------------------------------#
|
|
|
|
option(TIMEMORY_CCACHE_BUILD "Enable ccache build" OFF)
|
|
mark_as_advanced(TIMEMORY_CCACHE_BUILD)
|
|
if(TIMEMORY_CCACHE_BUILD)
|
|
find_program(TIMEMORY_CCACHE_EXE ccache PATH_SUFFIXES bin)
|
|
if(TIMEMORY_CCACHE_EXE)
|
|
if(NOT EXISTS "${TIMEMORY_CCACHE_EXE}")
|
|
message(
|
|
WARNING
|
|
"TIMEMORY_CCACHE_BUILD is ON but TIMEMORY_CCACHE_EXE (${TIMEMORY_CCACHE_EXE}) does not exist!"
|
|
)
|
|
else()
|
|
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${TIMEMORY_CCACHE_EXE}")
|
|
endif()
|
|
endif()
|
|
endif()
|
|
|
|
# ----------------------------------------------------------------------------------------#
|
|
# options
|
|
# ----------------------------------------------------------------------------------------#
|
|
|
|
# make sure testing enabled
|
|
if(TIMEMORY_BUILD_MINIMAL_TESTING)
|
|
set(TIMEMORY_BUILD_TESTING ON)
|
|
endif()
|
|
# this gets annoying
|
|
if(TIMEMORY_BUILD_GOOGLE_TEST OR TIMEMORY_BUILD_TESTING)
|
|
set(CMAKE_SUPPRESS_DEVELOPER_WARNINGS
|
|
ON
|
|
CACHE
|
|
BOOL
|
|
"Suppress Warnings that are meant for the author of the CMakeLists.txt files")
|
|
endif()
|
|
# override any cache settings
|
|
if(TIMEMORY_BUILD_TESTING)
|
|
set(TIMEMORY_BUILD_GOOGLE_TEST ON)
|
|
set(TIMEMORY_BUILD_EXAMPLES ON)
|
|
if(TIMEMORY_BUILD_MINIMAL_TESTING)
|
|
set(TIMEMORY_BUILD_EXAMPLES OFF)
|
|
endif()
|
|
endif()
|
|
#
|
|
if("${CMAKE_BUILD_TYPE}" STREQUAL "")
|
|
set(CMAKE_BUILD_TYPE
|
|
Release
|
|
CACHE STRING "Build type" FORCE)
|
|
endif()
|
|
|
|
# ----------------------------------------------------------------------------------------#
|
|
# versioning
|
|
# ----------------------------------------------------------------------------------------#
|
|
|
|
file(READ "${CMAKE_CURRENT_SOURCE_DIR}/VERSION" FULL_VERSION_STRING LIMIT_COUNT 1)
|
|
string(REGEX REPLACE "(\n|\r)" "" FULL_VERSION_STRING "${FULL_VERSION_STRING}")
|
|
string(REGEX REPLACE "([0-9]+)\.([0-9]+)\.([0-9]+)(.*)" "\\1.\\2.\\3" VERSION_STRING
|
|
"${FULL_VERSION_STRING}")
|
|
set(TIMEMORY_VERSION "${VERSION_STRING}")
|
|
if(NOT "${TIMEMORY_VERSION}" STREQUAL "${FULL_VERSION_STRING}")
|
|
message(STATUS "[timemory] version ${TIMEMORY_VERSION} (${FULL_VERSION_STRING})")
|
|
else()
|
|
message(STATUS "[timemory] version ${TIMEMORY_VERSION}")
|
|
endif()
|
|
set(TIMEMORY_VERSION_STRING "${FULL_VERSION_STRING}")
|
|
string(REPLACE "." ";" VERSION_LIST "${VERSION_STRING}")
|
|
list(GET VERSION_LIST 0 TIMEMORY_VERSION_MAJOR)
|
|
list(GET VERSION_LIST 1 TIMEMORY_VERSION_MINOR)
|
|
list(GET VERSION_LIST 2 TIMEMORY_VERSION_PATCH)
|
|
set(TIMEMORY_VERSION
|
|
"${TIMEMORY_VERSION_MAJOR}.${TIMEMORY_VERSION_MINOR}.${TIMEMORY_VERSION_PATCH}")
|
|
|
|
math(
|
|
EXPR
|
|
TIMEMORY_VERSION_CODE
|
|
"${TIMEMORY_VERSION_MAJOR} * 10000 + ${TIMEMORY_VERSION_MINOR} * 100 + ${TIMEMORY_VERSION_PATCH}"
|
|
)
|
|
|
|
# ----------------------------------------------------------------------------------------#
|
|
# setup.py
|
|
# ----------------------------------------------------------------------------------------#
|
|
|
|
if(SKBUILD AND TIMEMORY_USE_PYTHON)
|
|
set(CMAKE_INSTALL_LIBDIR lib)
|
|
endif()
|
|
|
|
# ----------------------------------------------------------------------------------------#
|
|
# Git info
|
|
# ----------------------------------------------------------------------------------------#
|
|
|
|
set(TIMEMORY_GIT_DESCRIBE "unknown")
|
|
set(TIMEMORY_GIT_REVISION "unknown")
|
|
|
|
# the docs/.gitinfo only exists in releases
|
|
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/docs/.gitinfo")
|
|
file(READ "${CMAKE_CURRENT_SOURCE_DIR}/docs/.gitinfo" _GIT_INFO)
|
|
string(REGEX REPLACE "[\n\r\t ]" ";" _GIT_INFO "${_GIT_INFO}")
|
|
string(REGEX REPLACE ";$" "" _GIT_INFO "${_GIT_INFO}")
|
|
list(LENGTH _GIT_INFO _GIT_INFO_LEN)
|
|
if(_GIT_INFO_LEN GREATER 1)
|
|
list(GET _GIT_INFO 0 TIMEMORY_GIT_REVISION)
|
|
list(GET _GIT_INFO 1 TIMEMORY_GIT_DESCRIBE)
|
|
endif()
|
|
endif()
|
|
|
|
find_package(Git QUIET)
|
|
if(Git_FOUND)
|
|
execute_process(
|
|
COMMAND ${GIT_EXECUTABLE} describe --tags
|
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
|
OUTPUT_VARIABLE _GIT_DESCRIBE
|
|
ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
if(_GIT_DESCRIBE)
|
|
set(TIMEMORY_GIT_DESCRIBE "${_GIT_DESCRIBE}")
|
|
endif()
|
|
execute_process(
|
|
COMMAND ${GIT_EXECUTABLE} rev-parse HEAD
|
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
|
OUTPUT_VARIABLE _GIT_REVISION
|
|
ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
if(_GIT_REVISION)
|
|
set(TIMEMORY_GIT_REVISION "${_GIT_REVISION}")
|
|
endif()
|
|
endif()
|
|
|
|
if(NOT "${TIMEMORY_GIT_REVISION}" STREQUAL "unknown")
|
|
message(STATUS "[timemory] git revision: ${TIMEMORY_GIT_REVISION}")
|
|
endif()
|
|
|
|
if(NOT "${TIMEMORY_GIT_DESCRIBE}" STREQUAL "unknown")
|
|
message(STATUS "[timemory] git describe: ${TIMEMORY_GIT_DESCRIBE}")
|
|
endif()
|