Cleanup linking
All checks were successful
Bigfoot / Build & Test Debug with ./ConanProfiles/clang (Unity Build: OFF) (push) Successful in 5m23s
Bigfoot / Build & Test Debug with ./ConanProfiles/clang (Unity Build: ON) (push) Successful in 5m14s
Bigfoot / Build & Test Debug with ./ConanProfiles/clang_asan (Unity Build: OFF) (push) Successful in 5m40s
Bigfoot / Build & Test Debug with ./ConanProfiles/clang_asan (Unity Build: ON) (push) Successful in 5m41s
Bigfoot / Build & Test RelWithDebInfo with ./ConanProfiles/clang (Unity Build: OFF) (push) Successful in 5m53s
Bigfoot / Build & Test RelWithDebInfo with ./ConanProfiles/clang (Unity Build: ON) (push) Successful in 5m54s
Bigfoot / Build & Test RelWithDebInfo with ./ConanProfiles/clang_asan (Unity Build: OFF) (push) Successful in 7m0s
Bigfoot / Build & Test RelWithDebInfo with ./ConanProfiles/clang_asan (Unity Build: ON) (push) Successful in 6m57s
Bigfoot / Build & Test Release with ./ConanProfiles/clang (Unity Build: OFF) (push) Successful in 5m56s
Bigfoot / Build & Test Release with ./ConanProfiles/clang (Unity Build: ON) (push) Successful in 5m55s
Bigfoot / Build & Test Release with ./ConanProfiles/clang_asan (Unity Build: OFF) (push) Successful in 6m35s
Bigfoot / Build & Test Release with ./ConanProfiles/clang_asan (Unity Build: ON) (push) Successful in 6m30s
Bigfoot / Clang Format Checks (push) Successful in 12s
All checks were successful
Bigfoot / Build & Test Debug with ./ConanProfiles/clang (Unity Build: OFF) (push) Successful in 5m23s
Bigfoot / Build & Test Debug with ./ConanProfiles/clang (Unity Build: ON) (push) Successful in 5m14s
Bigfoot / Build & Test Debug with ./ConanProfiles/clang_asan (Unity Build: OFF) (push) Successful in 5m40s
Bigfoot / Build & Test Debug with ./ConanProfiles/clang_asan (Unity Build: ON) (push) Successful in 5m41s
Bigfoot / Build & Test RelWithDebInfo with ./ConanProfiles/clang (Unity Build: OFF) (push) Successful in 5m53s
Bigfoot / Build & Test RelWithDebInfo with ./ConanProfiles/clang (Unity Build: ON) (push) Successful in 5m54s
Bigfoot / Build & Test RelWithDebInfo with ./ConanProfiles/clang_asan (Unity Build: OFF) (push) Successful in 7m0s
Bigfoot / Build & Test RelWithDebInfo with ./ConanProfiles/clang_asan (Unity Build: ON) (push) Successful in 6m57s
Bigfoot / Build & Test Release with ./ConanProfiles/clang (Unity Build: OFF) (push) Successful in 5m56s
Bigfoot / Build & Test Release with ./ConanProfiles/clang (Unity Build: ON) (push) Successful in 5m55s
Bigfoot / Build & Test Release with ./ConanProfiles/clang_asan (Unity Build: OFF) (push) Successful in 6m35s
Bigfoot / Build & Test Release with ./ConanProfiles/clang_asan (Unity Build: ON) (push) Successful in 6m30s
Bigfoot / Clang Format Checks (push) Successful in 12s
This commit is contained in:
@@ -3,47 +3,10 @@ function(bigfoot_create_package_lib PackagePublicDependencies PackagePrivateDepe
|
||||
|
||||
target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_20)
|
||||
|
||||
bigfoot_compile_flatbuffers("${PackageBigfootPublicDependencies}")
|
||||
|
||||
file(GLOB_RECURSE _SOURCES
|
||||
CONFIGURE_DEPENDS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/*.cpp
|
||||
)
|
||||
|
||||
file(GLOB_RECURSE _HEADERS
|
||||
CONFIGURE_DEPENDS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/*.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/*.hpp
|
||||
)
|
||||
|
||||
file(GLOB_RECURSE _OTHERS
|
||||
CONFIGURE_DEPENDS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/*.hpp.in
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/*.fbs
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/*.sql
|
||||
)
|
||||
|
||||
target_sources(${PROJECT_NAME}
|
||||
PRIVATE
|
||||
${_SOURCES}
|
||||
${_OTHERS}
|
||||
PUBLIC
|
||||
FILE_SET HEADERS
|
||||
BASE_DIRS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/Include
|
||||
FILES
|
||||
${_HEADERS}
|
||||
)
|
||||
|
||||
target_link_libraries(${PROJECT_NAME}
|
||||
PRIVATE
|
||||
BigfootCompileAndLinkFlags
|
||||
PUBLIC
|
||||
unordered_dense::unordered_dense
|
||||
EASTL::EASTL
|
||||
flatbuffers::flatbuffers
|
||||
rapidhash::rapidhash
|
||||
|
||||
${PackagePublicDependencies}
|
||||
$<LINK_LIBRARY:WHOLE_ARCHIVE,${PackageBigfootPublicDependencies}>
|
||||
|
||||
@@ -51,17 +14,7 @@ function(bigfoot_create_package_lib PackagePublicDependencies PackagePrivateDepe
|
||||
${PackagePrivateDependencies}
|
||||
$<LINK_LIBRARY:WHOLE_ARCHIVE,${PackageBigfootPrivateDependencies}>)
|
||||
|
||||
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} PREFIX Src FILES ${_SOURCES} ${_HEADERS} ${_OTHERS})
|
||||
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES FOLDER Bigfoot/${ParentFolder})
|
||||
endfunction()
|
||||
|
||||
function(bigfoot_create_package_tests ParentFolder BigfootDependencies)
|
||||
add_executable(${PROJECT_NAME})
|
||||
|
||||
target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_20)
|
||||
|
||||
bigfoot_compile_flatbuffers("${BigfootDependencies}")
|
||||
bigfoot_compile_flatbuffers()
|
||||
|
||||
file(GLOB_RECURSE _SOURCES
|
||||
CONFIGURE_DEPENDS
|
||||
@@ -93,14 +46,54 @@ function(bigfoot_create_package_tests ParentFolder BigfootDependencies)
|
||||
${_HEADERS}
|
||||
)
|
||||
|
||||
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} PREFIX Src FILES ${_SOURCES} ${_HEADERS} ${_OTHERS})
|
||||
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES FOLDER Bigfoot/${ParentFolder})
|
||||
endfunction()
|
||||
|
||||
function(bigfoot_create_package_tests ParentFolder)
|
||||
add_executable(${PROJECT_NAME})
|
||||
|
||||
target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_20)
|
||||
|
||||
target_link_libraries(${PROJECT_NAME}
|
||||
PRIVATE
|
||||
BigfootCompileAndLinkFlags
|
||||
|
||||
PRIVATE
|
||||
$<LINK_LIBRARY:WHOLE_ARCHIVE,${PackageName}>
|
||||
gtest::gtest)
|
||||
|
||||
bigfoot_compile_flatbuffers()
|
||||
|
||||
file(GLOB_RECURSE _SOURCES
|
||||
CONFIGURE_DEPENDS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/*.cpp
|
||||
)
|
||||
|
||||
file(GLOB_RECURSE _HEADERS
|
||||
CONFIGURE_DEPENDS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/*.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/*.hpp
|
||||
)
|
||||
|
||||
file(GLOB_RECURSE _OTHERS
|
||||
CONFIGURE_DEPENDS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/*.hpp.in
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/*.fbs
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/*.sql
|
||||
)
|
||||
|
||||
target_sources(${PROJECT_NAME}
|
||||
PRIVATE
|
||||
${_SOURCES}
|
||||
${_OTHERS}
|
||||
PUBLIC
|
||||
FILE_SET HEADERS
|
||||
BASE_DIRS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/Include
|
||||
FILES
|
||||
${_HEADERS}
|
||||
)
|
||||
|
||||
include(GoogleTest)
|
||||
gtest_discover_tests(${PROJECT_NAME} XML_OUTPUT_DIR ${CMAKE_BINARY_DIR}/TestResults/)
|
||||
|
||||
|
||||
@@ -38,27 +38,53 @@ function(bigfoot_create_bigfile ParentFolder)
|
||||
)
|
||||
endfunction()
|
||||
|
||||
function(bigfoot_compile_flatbuffers BigfootDependencies)
|
||||
set(IncludeFolders "")
|
||||
function(_bigfoot_collect_includes_recursive Target UseAllLinks)
|
||||
get_property(_Visited GLOBAL PROPERTY _BIGFOOT_VISITED_TARGETS)
|
||||
if("${Target}" IN_LIST _Visited)
|
||||
return()
|
||||
endif()
|
||||
set_property(GLOBAL APPEND PROPERTY _BIGFOOT_VISITED_TARGETS "${Target}")
|
||||
|
||||
list(APPEND IncludeFolders ${CMAKE_CURRENT_SOURCE_DIR}/Include)
|
||||
|
||||
foreach(Dependency IN LISTS BigfootDependencies)
|
||||
if(TARGET ${Dependency})
|
||||
get_target_property(DependencyIncludeDirs ${Dependency} INTERFACE_INCLUDE_DIRECTORIES)
|
||||
if(DependencyIncludeDirs)
|
||||
foreach(Dir IN LISTS DependencyIncludeDirs)
|
||||
# Strip $<BUILD_INTERFACE:...> generator expression
|
||||
if(Dir MATCHES "^\\$<BUILD_INTERFACE:(.+)>$")
|
||||
list(APPEND IncludeFolders "${CMAKE_MATCH_1}")
|
||||
elseif(NOT Dir MATCHES "^\\$<")
|
||||
# Pass through plain paths, skip other generator expressions
|
||||
list(APPEND IncludeFolders "${Dir}")
|
||||
endif()
|
||||
endforeach()
|
||||
get_target_property(_IncDirs "${Target}" INTERFACE_INCLUDE_DIRECTORIES)
|
||||
if(_IncDirs)
|
||||
foreach(_Dir IN LISTS _IncDirs)
|
||||
if(_Dir MATCHES "^\\$<BUILD_INTERFACE:(.+)>$")
|
||||
set_property(GLOBAL APPEND PROPERTY _BIGFOOT_INCLUDE_DIRS "${CMAKE_MATCH_1}")
|
||||
elseif(NOT _Dir MATCHES "^\\$<")
|
||||
set_property(GLOBAL APPEND PROPERTY _BIGFOOT_INCLUDE_DIRS "${_Dir}")
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
if(UseAllLinks)
|
||||
get_target_property(_Libs "${Target}" LINK_LIBRARIES)
|
||||
else()
|
||||
get_target_property(_Libs "${Target}" INTERFACE_LINK_LIBRARIES)
|
||||
endif()
|
||||
if(NOT _Libs)
|
||||
return()
|
||||
endif()
|
||||
foreach(_Lib IN LISTS _Libs)
|
||||
if(_Lib MATCHES "^\\$<LINK_LIBRARY:[^,]+,(.+)>$")
|
||||
foreach(_Inner IN LISTS CMAKE_MATCH_1)
|
||||
if(TARGET "${_Inner}")
|
||||
_bigfoot_collect_includes_recursive("${_Inner}" FALSE)
|
||||
endif()
|
||||
endforeach()
|
||||
elseif(NOT _Lib MATCHES "^\\$<" AND TARGET "${_Lib}")
|
||||
_bigfoot_collect_includes_recursive("${_Lib}" FALSE)
|
||||
endif()
|
||||
endforeach()
|
||||
endfunction()
|
||||
|
||||
function(bigfoot_compile_flatbuffers)
|
||||
set_property(GLOBAL PROPERTY _BIGFOOT_VISITED_TARGETS "")
|
||||
set_property(GLOBAL PROPERTY _BIGFOOT_INCLUDE_DIRS "")
|
||||
_bigfoot_collect_includes_recursive(${PROJECT_NAME} TRUE)
|
||||
|
||||
get_property(_CollectedDirs GLOBAL PROPERTY _BIGFOOT_INCLUDE_DIRS)
|
||||
set(IncludeFolders "${CMAKE_CURRENT_SOURCE_DIR}/Include" ${_CollectedDirs})
|
||||
list(REMOVE_DUPLICATES IncludeFolders)
|
||||
|
||||
set(IncludeFlags "")
|
||||
foreach(folder IN LISTS IncludeFolders)
|
||||
|
||||
Reference in New Issue
Block a user