Initial commit
Some checks failed
Bigfoot / Build & Test Debug (push) Successful in 1m21s
Bigfoot / Build & Test RelWithDebInfo (push) Successful in 1m0s
Bigfoot / Build & Test Release (push) Successful in 31s
Bigfoot / Clang Format Checks (push) Failing after 8s
Bigfoot / Sonarqube (push) Successful in 52s
Some checks failed
Bigfoot / Build & Test Debug (push) Successful in 1m21s
Bigfoot / Build & Test RelWithDebInfo (push) Successful in 1m0s
Bigfoot / Build & Test Release (push) Successful in 31s
Bigfoot / Clang Format Checks (push) Failing after 8s
Bigfoot / Sonarqube (push) Successful in 52s
This commit is contained in:
22
CMake/FindDependencies.cmake
Normal file
22
CMake/FindDependencies.cmake
Normal file
@@ -0,0 +1,22 @@
|
||||
find_package(Python3 COMPONENTS Interpreter Development)
|
||||
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
set(THREADS_PREFER_PTHREAD_FLAG ON)
|
||||
find_package(Threads REQUIRED)
|
||||
endif()
|
||||
|
||||
find_package(EASTL REQUIRED)
|
||||
find_package(mimalloc REQUIRED)
|
||||
find_package(CLI11 REQUIRED)
|
||||
find_package(rapidhash REQUIRED)
|
||||
find_package(quill REQUIRED)
|
||||
|
||||
if(${IS_MULTI_CONFIG})
|
||||
find_package(cpptrace REQUIRED)
|
||||
elseif(${CMAKE_BUILD_TYPE} STREQUAL "Debug" OR ${CMAKE_BUILD_TYPE} STREQUAL "RelWithDebInfo")
|
||||
find_package(cpptrace REQUIRED)
|
||||
endif()
|
||||
|
||||
if(BUILD_TESTS)
|
||||
find_package(GTest REQUIRED)
|
||||
endif()
|
||||
58
CMake/Utils.cmake
Normal file
58
CMake/Utils.cmake
Normal file
@@ -0,0 +1,58 @@
|
||||
function(bin2cpp_setup_dependencies ParentFolder)
|
||||
set(CONAN_DEPLOYER_DIR "${CMAKE_SOURCE_DIR}/build/full_deploy/host")
|
||||
|
||||
if(EXISTS ${CONAN_DEPLOYER_DIR})
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
||||
file(GLOB_RECURSE SHARED_BINARIES ${CONAN_DEPLOYER_DIR}/*mimalloc*.dll)
|
||||
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
file(GLOB_RECURSE SHARED_BINARIES ${CONAN_DEPLOYER_DIR}/*mimalloc*.so*)
|
||||
endif()
|
||||
|
||||
if(${IS_MULTI_CONFIG})
|
||||
foreach(CONFIG ${CMAKE_CONFIGURATION_TYPES})
|
||||
foreach(file ${SHARED_BINARIES})
|
||||
if(file MATCHES "/${CONFIG}/")
|
||||
list(APPEND SHARED_BINARIES_${CONFIG} ${file})
|
||||
endif()
|
||||
endforeach()
|
||||
endforeach()
|
||||
|
||||
add_custom_target(${PROJECT_NAME}CopySharedBinaries
|
||||
ALL DEPENDS SHARED_BINARIES
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory $<TARGET_FILE_DIR:${PROJECT_NAME}>
|
||||
COMMAND ${CMAKE_COMMAND} -E $<IF:$<CONFIG:Debug>,copy_if_different,true> ${SHARED_BINARIES_Debug} $<TARGET_FILE_DIR:${PROJECT_NAME}>
|
||||
COMMAND ${CMAKE_COMMAND} -E $<IF:$<CONFIG:Release>,copy_if_different,true> ${SHARED_BINARIES_Release} $<TARGET_FILE_DIR:${PROJECT_NAME}>
|
||||
COMMAND ${CMAKE_COMMAND} -E $<IF:$<CONFIG:RelWithDebInfo>,copy_if_different,true> ${SHARED_BINARIES_RelWithDebInfo} $<TARGET_FILE_DIR:${PROJECT_NAME}>
|
||||
COMMENT "Copy shared binaries for ${PROJECT_NAME}"
|
||||
)
|
||||
add_dependencies(${PROJECT_NAME} ${PROJECT_NAME}CopySharedBinaries)
|
||||
set_target_properties(${PROJECT_NAME}CopySharedBinaries PROPERTIES FOLDER UtilityTargets/${ParentFolder})
|
||||
|
||||
else()
|
||||
foreach(file ${SHARED_BINARIES})
|
||||
if(file MATCHES "/${CMAKE_BUILD_TYPE}/")
|
||||
list(APPEND SHARED_BINARIES_${CMAKE_BUILD_TYPE} ${file})
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
add_custom_target(${PROJECT_NAME}CopySharedBinaries ALL
|
||||
DEPENDS ${SHARED_BINARIES_${CMAKE_BUILD_TYPE}}
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory $<TARGET_FILE_DIR:${PROJECT_NAME}>
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${SHARED_BINARIES_${CMAKE_BUILD_TYPE}} $<TARGET_FILE_DIR:${PROJECT_NAME}>
|
||||
COMMENT "Copy shared binaries for ${PROJECT_NAME}"
|
||||
)
|
||||
add_dependencies(${PROJECT_NAME} ${PROJECT_NAME}CopySharedBinaries)
|
||||
set_target_properties(${PROJECT_NAME}CopySharedBinaries PROPERTIES FOLDER UtilityTargets/${ParentFolder})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
||||
add_custom_target(${PROJECT_NAME}PatchMinject ALL
|
||||
COMMAND ${MINJECT_EXECUTABLE} -i -f $<TARGET_FILE:${PROJECT_NAME}>
|
||||
COMMENT "Patching ${PROJECT_NAME} to ensure mimalloc dynamic override"
|
||||
)
|
||||
add_dependencies(${PROJECT_NAME}PatchMinject ${PROJECT_NAME})
|
||||
set_target_properties(${PROJECT_NAME}PatchMinject PROPERTIES FOLDER "UtilityTargets/${ParentFolder}")
|
||||
endif()
|
||||
|
||||
endfunction()
|
||||
Reference in New Issue
Block a user