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
58 lines
3.1 KiB
CMake
58 lines
3.1 KiB
CMake
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() |