Updated CMakePresets.json to add 'testnet' and 'mainnet' workflows, removed unused Windows preset, and improved environment and cache variable handling. Makefile targets for testnet and mainnet workflows were added, and Conan-related targets were renamed for consistency. Added a function to reset ConanPresets.json in CleanBuild.cmake and fixed the path for GetConan.cmake in conan_provider.cmake. Deleted obsolete .idea/cmake.xml.
76 lines
2.5 KiB
CMake
76 lines
2.5 KiB
CMake
# cmake/CleanBuild.cmake
|
|
|
|
# Function to selectively clean the build directory.
|
|
#
|
|
# This function will remove most of the generated build files from the build
|
|
# directory, while preserving specific directories that contain downloaded
|
|
# tools or generated documentation.
|
|
#
|
|
# Golden Rules:
|
|
# - never delete build/
|
|
# - never delete build/bin
|
|
# - never delete build/docs
|
|
# - never delete build/sdk (non cache)
|
|
#
|
|
# It will:
|
|
# - purge build files
|
|
# - clean up conan build files, cached sources can always remain.
|
|
function(selective_clean_build_dir)
|
|
if(EXISTS "${CMAKE_SOURCE_DIR}/build")
|
|
message(STATUS "Selectively cleaning build directory: ${CMAKE_SOURCE_DIR}/build")
|
|
|
|
# List of top-level items in the build directory to keep.
|
|
set(golden_items
|
|
"${CMAKE_SOURCE_DIR}/build/.ccache"
|
|
"${CMAKE_SOURCE_DIR}/build/bin"
|
|
"${CMAKE_SOURCE_DIR}/build/docs"
|
|
"${CMAKE_SOURCE_DIR}/build/sdk"
|
|
)
|
|
|
|
# Get all top-level items in the build directory.
|
|
file(GLOB top_level_items "${CMAKE_SOURCE_DIR}/build/*")
|
|
|
|
foreach(item ${top_level_items})
|
|
list(FIND golden_items "${item}" is_golden)
|
|
if(is_golden STREQUAL "-1")
|
|
string(FIND "${item}" "${CMAKE_SOURCE_DIR}/build" is_prefixed)
|
|
if(is_prefixed EQUAL 0)
|
|
message(STATUS "Removing: ${item}")
|
|
if(IS_DIRECTORY "${item}")
|
|
file(REMOVE_RECURSE "${item}")
|
|
else()
|
|
file(REMOVE "${item}")
|
|
endif()
|
|
else()
|
|
message(WARNING "Safety check failed: Will not remove '${item}' because it is not prefixed with CMAKE_SOURCE_DIR/build.")
|
|
endif()
|
|
else()
|
|
message(STATUS "Keeping golden item: ${item}")
|
|
endif()
|
|
endforeach()
|
|
|
|
message(STATUS "Selective clean complete.")
|
|
else()
|
|
message(STATUS "Build directory not found, skipping clean.")
|
|
endif()
|
|
endfunction()
|
|
|
|
function(reset_conan_presets)
|
|
set(CONAN_PRESETS_FILE "${CMAKE_SOURCE_DIR}/ConanPresets.json")
|
|
|
|
set(NEW_CONTENT [[{
|
|
"version": 4,
|
|
"vendor": {
|
|
"conan": {}
|
|
},
|
|
"include": [
|
|
|
|
]
|
|
}]])
|
|
message(STATUS "Resetting ${CONAN_PRESETS_FILE} to a clean state.")
|
|
file(WRITE "${CONAN_PRESETS_FILE}" "${NEW_CONTENT}")
|
|
message(STATUS "${CONAN_PRESETS_FILE} has been successfully reset.")
|
|
endfunction()
|
|
|
|
selective_clean_build_dir()
|
|
reset_conan_presets()
|