AssetLibrary
Bigfoot / Build & Test Debug with ./ConanProfiles/clang (Unity Build: ON) (push) Has been cancelled
Bigfoot / Build & Test Debug with ./ConanProfiles/clang_asan (Unity Build: OFF) (push) Has been cancelled
Bigfoot / Build & Test Debug with ./ConanProfiles/clang_asan (Unity Build: ON) (push) Has been cancelled
Bigfoot / Build & Test RelWithDebInfo with ./ConanProfiles/clang (Unity Build: OFF) (push) Has been cancelled
Bigfoot / Build & Test RelWithDebInfo with ./ConanProfiles/clang (Unity Build: ON) (push) Has been cancelled
Bigfoot / Build & Test RelWithDebInfo with ./ConanProfiles/clang_asan (Unity Build: OFF) (push) Has been cancelled
Bigfoot / Build & Test RelWithDebInfo with ./ConanProfiles/clang_asan (Unity Build: ON) (push) Has been cancelled
Bigfoot / Build & Test Release with ./ConanProfiles/clang (Unity Build: OFF) (push) Has been cancelled
Bigfoot / Build & Test Release with ./ConanProfiles/clang (Unity Build: ON) (push) Has been cancelled
Bigfoot / Build & Test Release with ./ConanProfiles/clang_asan (Unity Build: OFF) (push) Has been cancelled
Bigfoot / Build & Test Release with ./ConanProfiles/clang_asan (Unity Build: ON) (push) Has been cancelled
Bigfoot / Clang Format Checks (push) Has been cancelled
Bigfoot / Build & Test Debug with ./ConanProfiles/clang (Unity Build: OFF) (push) Has been cancelled

This commit is contained in:
2026-07-28 18:07:44 +02:00
parent de29165271
commit 468e3c44b1
30 changed files with 316 additions and 35 deletions
@@ -7,9 +7,12 @@
#ifndef BIGFOOT_ENGINE_ASSET_ASSETHELPER_HPP #ifndef BIGFOOT_ENGINE_ASSET_ASSETHELPER_HPP
#define BIGFOOT_ENGINE_ASSET_ASSETHELPER_HPP #define BIGFOOT_ENGINE_ASSET_ASSETHELPER_HPP
#include <Engine/Asset/AssetContainer.hpp> #include <Engine/Asset/AssetContainer.hpp>
#include <Engine/Asset/AssetLibrary.hpp>
#include <Engine/Asset/Reference.hpp> #include <Engine/Asset/Reference.hpp>
#include <Engine/Asset/Reference_generated.hpp> #include <Engine/Asset/Reference_generated.hpp>
#include <Utils/Concat.h>
#define ASSET_SOFT_REF_DECL(AssetName, AssetType) \ #define ASSET_SOFT_REF_DECL(AssetName, AssetType) \
namespace flatbuffers \ namespace flatbuffers \
{ \ { \
@@ -28,8 +31,6 @@
ASSET_SOFT_REF_DECL(AssetName, AssetType) \ ASSET_SOFT_REF_DECL(AssetName, AssetType) \
ASSET_HARD_REF_DECL(AssetName, AssetType) ASSET_HARD_REF_DECL(AssetName, AssetType)
#define ASSET_DECL(AssetName, AssetType) ASSET_REF_DECL(AssetName, AssetType)
/****************************************************************************************/ /****************************************************************************************/
#define ASSET_SOFT_REF_IMPL(AssetName, AssetType) \ #define ASSET_SOFT_REF_IMPL(AssetName, AssetType) \
@@ -62,5 +63,13 @@
ASSET_SOFT_REF_IMPL(AssetName, AssetType) \ ASSET_SOFT_REF_IMPL(AssetName, AssetType) \
ASSET_HARD_REF_IMPL(AssetName, AssetType) ASSET_HARD_REF_IMPL(AssetName, AssetType)
#define ASSET_IMPL(AssetName, AssetType) ASSET_REF_IMPL(AssetName, AssetType) /****************************************************************************************/
#define ASSET_CONTAINER(AssetType) \
namespace Bigfoot \
{ \
AssetContainer<AssetType> MAKE_UNIQUE_VARIABLE_NAME(AssetType##Container); \
const bool MAKE_UNIQUE_VARIABLE_NAME(inserted) = \
g_assetLibrary.Insert(&MAKE_UNIQUE_VARIABLE_NAME(AssetType##Container)); \
}
#endif #endif
@@ -0,0 +1,78 @@
/*********************************************************************
* \file AssetLibrary.hpp
*
* \author Romain BOULLARD
* \date July 2026
*********************************************************************/
#ifndef BIGFOOT_ENGINE_ASSET_ASSETLIBRARY_HPP
#define BIGFOOT_ENGINE_ASSET_ASSETLIBRARY_HPP
#include <Engine/Asset/AssetContainer.hpp>
#include <Engine/Asset/AssetTypeID.hpp>
#include <EASTL/any.h>
#include <ankerl/unordered_dense.h>
namespace Bigfoot
{
class AssetLibrary
{
public:
AssetLibrary() = default;
AssetLibrary(const AssetLibrary& p_library) = default;
AssetLibrary(AssetLibrary&& p_library) = default;
~AssetLibrary() = default;
template<class ASSET>
[[nodiscard]]
bool Insert(AssetContainer<ASSET>* p_assetContainer)
{
static const AssetTypeID typeID = ASSET::GetTypeID();
if (m_assetContainers.contains(typeID))
{
return false;
}
const auto inserted = m_assetContainers.emplace(typeID, p_assetContainer);
return inserted.second;
}
template<class ASSET>
[[nodiscard]]
AssetContainer<ASSET>* Get()
{
static const AssetTypeID typeID = ASSET::GetTypeID();
if (const auto container = m_assetContainers.find(typeID); container != m_assetContainers.end())
{
return eastl::any_cast<AssetContainer<ASSET>*>(container->second);
}
return nullptr;
}
template<class ASSET>
[[nodiscard]]
const AssetContainer<ASSET>* Get() const
{
static const AssetTypeID typeID = ASSET::GetTypeID();
if (const auto container = m_assetContainers.find(typeID); container != m_assetContainers.end())
{
return eastl::any_cast<const AssetContainer<ASSET>*>(container->second);
}
return nullptr;
}
AssetLibrary& operator=(const AssetLibrary& p_library) = default;
AssetLibrary& operator=(AssetLibrary&& p_library) = default;
private:
std::unordered_map<AssetTypeID, eastl::any> m_assetContainers;
};
inline AssetLibrary g_assetLibrary;
} // namespace Bigfoot
#endif
+2
View File
@@ -1,3 +1,5 @@
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/Misc)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/Utils) add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/Utils)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/System) add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/System)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/Engine) add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/Engine)
+3 -4
View File
@@ -6,10 +6,9 @@
*********************************************************************/ *********************************************************************/
#include <Engine/Asset/Asset.hpp> #include <Engine/Asset/Asset.hpp>
#include <EngineTests/Asset/AssetA.hpp> #include <AssetsForTesting/Asset/AssetA.hpp>
#include <EngineTests/Asset/AssetB.hpp> #include <AssetsForTesting/Asset/AssetB.hpp>
#include <EngineTests/Asset/AssetC.hpp> #include <AssetsForTesting/Asset/AssetC.hpp>
#include <gtest/gtest.h> #include <gtest/gtest.h>
namespace Bigfoot namespace Bigfoot
@@ -1,13 +1,12 @@
/********************************************************************* /*********************************************************************
* \file BigFile.cpp * \file AssetContainer.cpp
* *
* \author Romain BOULLARD * \author Romain BOULLARD
* \date December 2025 * \date December 2025
*********************************************************************/ *********************************************************************/
#include <Engine/Asset/AssetContainer.hpp> #include <Engine/Asset/AssetContainer.hpp>
#include <EngineTests/Asset/AssetA.hpp> #include <AssetsForTesting/Asset/AssetA.hpp>
#include <gtest/gtest.h> #include <gtest/gtest.h>
namespace Bigfoot namespace Bigfoot
@@ -0,0 +1,74 @@
/*********************************************************************
* \file AssetLibrary.cpp
*
* \author Romain BOULLARD
* \date July 2026
*********************************************************************/
#include <Engine/Asset/AssetLibrary.hpp>
#include <AssetsForTesting/Asset/AssetA.hpp>
#include <AssetsForTesting/Asset/AssetB.hpp>
#include <AssetsForTesting/Asset/AssetC.hpp>
#include <gtest/gtest.h>
namespace Bigfoot
{
class AssetLibraryFixture: public ::testing::Test
{
protected:
void SetUp() override
{
std::ignore = m_library.Insert(&m_containerA);
std::ignore = m_library.Insert(&m_containerB);
}
AssetContainer<AssetA> m_containerA;
AssetContainer<AssetB> m_containerB;
AssetLibrary m_library;
};
/****************************************************************************************/
TEST_F(AssetLibraryFixture, Insert_ShouldReturnTrueIfTheContainerHasBeenInserted)
{
AssetContainer<AssetC> containerC;
EXPECT_TRUE(m_library.Insert(&containerC));
}
/****************************************************************************************/
TEST_F(AssetLibraryFixture, Insert_ShouldReturnFalseIfTheContainerHasNotBeenInserted)
{
EXPECT_FALSE(m_library.Insert(&m_containerA)); // Duplicate
}
/****************************************************************************************/
TEST_F(AssetLibraryFixture, Get_ShouldReturnTheContainersIfTheyAreInTheLibrary)
{
const AssetContainer<AssetA>* containerA = m_library.Get<AssetA>();
const AssetContainer<AssetB>* containerB = m_library.Get<AssetB>();
EXPECT_EQ(&m_containerA, containerA);
EXPECT_EQ(&m_containerB, containerB);
}
/****************************************************************************************/
TEST_F(AssetLibraryFixture, Get_ShouldReturnNullptrIfTheContainersAreNotInTheLibrary)
{
const AssetContainer<AssetC>* containerC = m_library.Get<AssetC>();
EXPECT_EQ(nullptr, containerC);
}
/****************************************************************************************/
TEST_F(AssetLibraryFixture, GlobalAssetLibraryShouldHaveAssetsRegistered)
{
EXPECT_NE(g_assetLibrary.Get<AssetA>(), nullptr);
EXPECT_NE(g_assetLibrary.Get<AssetB>(), nullptr);
EXPECT_NE(g_assetLibrary.Get<AssetC>(), nullptr);
}
} // namespace Bigfoot
+6
View File
@@ -1,7 +1,13 @@
get_filename_component(PackageName ${CMAKE_CURRENT_SOURCE_DIR} NAME) get_filename_component(PackageName ${CMAKE_CURRENT_SOURCE_DIR} NAME)
project(${PackageName}Tests) project(${PackageName}Tests)
set(Dependencies)
set(BigfootDependencies
AssetsForTesting)
bigfoot_create_package_tests( bigfoot_create_package_tests(
"${Dependencies}"
"${BigfootDependencies}"
"") "")
bigfoot_create_bigfile("Tests/Bigfoot") bigfoot_create_bigfile("Tests/Bigfoot")
@@ -0,0 +1,11 @@
/*********************************************************************
* \file AssetA.cpp
*
* \author Romain BOULLARD
* \date July 2026
*********************************************************************/
#include <AssetsForTesting/Asset/AssetA.hpp>
#include <Engine/Asset/AssetHelper.hpp>
ASSET_CONTAINER(AssetA)
@@ -4,6 +4,6 @@
* \author Romain BOULLARD * \author Romain BOULLARD
* \date May 2026 * \date May 2026
*********************************************************************/ *********************************************************************/
#include <EngineTests/Asset/AssetA_fwd.hpp> #include <AssetsForTesting/Asset/AssetA_fwd.hpp>
ASSET_REF_IMPL(AssetA, ::Bigfoot::AssetA) ASSET_REF_IMPL(AssetA, ::Bigfoot::AssetA)
@@ -0,0 +1,11 @@
/*********************************************************************
* \file AssetB.cpp
*
* \author Romain BOULLARD
* \date July 2026
*********************************************************************/
#include <AssetsForTesting/Asset/AssetB.hpp>
#include <Engine/Asset/AssetHelper.hpp>
ASSET_CONTAINER(AssetB)
@@ -4,6 +4,6 @@
* \author Romain BOULLARD * \author Romain BOULLARD
* \date May 2026 * \date May 2026
*********************************************************************/ *********************************************************************/
#include <EngineTests/Asset/AssetB_fwd.hpp> #include <AssetsForTesting/Asset/AssetB_fwd.hpp>
ASSET_REF_IMPL(AssetB, ::Bigfoot::AssetB) ASSET_REF_IMPL(AssetB, ::Bigfoot::AssetB)
@@ -0,0 +1,11 @@
/*********************************************************************
* \file AssetC.cpp
*
* \author Romain BOULLARD
* \date July 2026
*********************************************************************/
#include <AssetsForTesting/Asset/AssetC.hpp>
#include <Engine/Asset/AssetHelper.hpp>
ASSET_CONTAINER(AssetC)
@@ -4,6 +4,6 @@
* \author Romain BOULLARD * \author Romain BOULLARD
* \date May 2026 * \date May 2026
*********************************************************************/ *********************************************************************/
#include <EngineTests/Asset/AssetC_fwd.hpp> #include <AssetsForTesting/Asset/AssetC_fwd.hpp>
ASSET_REF_IMPL(AssetC, ::Bigfoot::AssetC) ASSET_REF_IMPL(AssetC, ::Bigfoot::AssetC)
@@ -0,0 +1,15 @@
get_filename_component(PackageName ${CMAKE_CURRENT_SOURCE_DIR} NAME)
project(${PackageName})
set(PublicDependencies)
set(PrivateDependencies)
set(BigfootPublicDependencies)
set(BigfootPrivateDependencies
Engine)
bigfoot_create_package_tests_helper_lib(
"${PublicDependencies}"
"${PrivateDependencies}"
"${BigfootPublicDependencies}"
"${BigfootPrivateDependencies}"
"")
@@ -1,6 +1,6 @@
include "Engine/Asset/Reference.fbs"; include "Engine/Asset/Reference.fbs";
native_include "EngineTests/Asset/AssetA_fwd.hpp"; native_include "AssetsForTesting/Asset/AssetA_fwd.hpp";
namespace Flat.Bigfoot; namespace Flat.Bigfoot;
@@ -8,7 +8,7 @@
#define BIGFOOT_ENGINETESTS_ASSET_ASSETA_HPP #define BIGFOOT_ENGINETESTS_ASSET_ASSETA_HPP
#include <Engine/Asset/Asset.hpp> #include <Engine/Asset/Asset.hpp>
#include <EngineTests/Asset/AssetA_generated.hpp> #include <AssetsForTesting/Asset/AssetA_generated.hpp>
namespace Bigfoot namespace Bigfoot
{ {
@@ -13,6 +13,6 @@ namespace Bigfoot
class AssetA; class AssetA;
} // namespace Bigfoot } // namespace Bigfoot
ASSET_DECL(AssetA, ::Bigfoot::AssetA) ASSET_REF_DECL(AssetA, ::Bigfoot::AssetA)
#endif #endif
@@ -16,7 +16,7 @@ static_assert(FLATBUFFERS_VERSION_MAJOR == 25 &&
#include "Engine/Asset/Reference.hpp" #include "Engine/Asset/Reference.hpp"
#include "System/UUID/UUID.hpp" #include "System/UUID/UUID.hpp"
#include "Engine/Asset/Reference.hpp" #include "Engine/Asset/Reference.hpp"
#include "EngineTests/Asset/AssetA_fwd.hpp" #include "AssetsForTesting/Asset/AssetA_fwd.hpp"
#include "Engine/Asset/Reference_generated.hpp" #include "Engine/Asset/Reference_generated.hpp"
#include "EASTL/unique_ptr.h" #include "EASTL/unique_ptr.h"
@@ -1,8 +1,8 @@
include "Engine/Asset/Reference.fbs"; include "Engine/Asset/Reference.fbs";
include "EngineTests/Asset/AssetA.fbs"; include "AssetsForTesting/Asset/AssetA.fbs";
native_include "EngineTests/Asset/AssetB_fwd.hpp"; native_include "AssetsForTesting/Asset/AssetB_fwd.hpp";
namespace Flat.Bigfoot; namespace Flat.Bigfoot;
@@ -8,7 +8,7 @@
#define BIGFOOT_ENGINETESTS_ASSET_ASSETB_HPP #define BIGFOOT_ENGINETESTS_ASSET_ASSETB_HPP
#include <Engine/Asset/Asset.hpp> #include <Engine/Asset/Asset.hpp>
#include <EngineTests/Asset/AssetB_generated.hpp> #include <AssetsForTesting/Asset/AssetB_generated.hpp>
namespace Bigfoot namespace Bigfoot
{ {
@@ -13,6 +13,6 @@ namespace Bigfoot
class AssetB; class AssetB;
} // namespace Bigfoot } // namespace Bigfoot
ASSET_DECL(AssetB, ::Bigfoot::AssetB) ASSET_REF_DECL(AssetB, ::Bigfoot::AssetB)
#endif #endif
@@ -16,10 +16,10 @@ static_assert(FLATBUFFERS_VERSION_MAJOR == 25 &&
#include "Engine/Asset/Reference.hpp" #include "Engine/Asset/Reference.hpp"
#include "System/UUID/UUID.hpp" #include "System/UUID/UUID.hpp"
#include "Engine/Asset/Reference.hpp" #include "Engine/Asset/Reference.hpp"
#include "EngineTests/Asset/AssetA_fwd.hpp" #include "AssetsForTesting/Asset/AssetA_fwd.hpp"
#include "EngineTests/Asset/AssetB_fwd.hpp" #include "AssetsForTesting/Asset/AssetB_fwd.hpp"
#include "Engine/Asset/Reference_generated.hpp" #include "Engine/Asset/Reference_generated.hpp"
#include "EngineTests/Asset/AssetA_generated.hpp" #include "AssetsForTesting/Asset/AssetA_generated.hpp"
#include "EASTL/unique_ptr.h" #include "EASTL/unique_ptr.h"
#include "EASTL/string.h" #include "EASTL/string.h"
@@ -1,9 +1,9 @@
include "Engine/Asset/Reference.fbs"; include "Engine/Asset/Reference.fbs";
include "EngineTests/Asset/AssetA.fbs"; include "AssetsForTesting/Asset/AssetA.fbs";
include "EngineTests/Asset/AssetB.fbs"; include "AssetsForTesting/Asset/AssetB.fbs";
native_include "EngineTests/Asset/AssetC_fwd.hpp"; native_include "AssetsForTesting/Asset/AssetC_fwd.hpp";
namespace Flat.Bigfoot; namespace Flat.Bigfoot;
@@ -8,7 +8,7 @@
#define BIGFOOT_ENGINETESTS_ASSET_ASSETC_HPP #define BIGFOOT_ENGINETESTS_ASSET_ASSETC_HPP
#include <Engine/Asset/Asset.hpp> #include <Engine/Asset/Asset.hpp>
#include <EngineTests/Asset/AssetC_generated.hpp> #include <AssetsForTesting/Asset/AssetC_generated.hpp>
namespace Bigfoot namespace Bigfoot
{ {
@@ -13,6 +13,6 @@ namespace Bigfoot
class AssetC; class AssetC;
} // namespace Bigfoot } // namespace Bigfoot
ASSET_DECL(AssetC, ::Bigfoot::AssetC) ASSET_REF_DECL(AssetC, ::Bigfoot::AssetC)
#endif #endif
@@ -16,12 +16,12 @@ static_assert(FLATBUFFERS_VERSION_MAJOR == 25 &&
#include "Engine/Asset/Reference.hpp" #include "Engine/Asset/Reference.hpp"
#include "System/UUID/UUID.hpp" #include "System/UUID/UUID.hpp"
#include "Engine/Asset/Reference.hpp" #include "Engine/Asset/Reference.hpp"
#include "EngineTests/Asset/AssetA_fwd.hpp" #include "AssetsForTesting/Asset/AssetA_fwd.hpp"
#include "EngineTests/Asset/AssetB_fwd.hpp" #include "AssetsForTesting/Asset/AssetB_fwd.hpp"
#include "EngineTests/Asset/AssetC_fwd.hpp" #include "AssetsForTesting/Asset/AssetC_fwd.hpp"
#include "Engine/Asset/Reference_generated.hpp" #include "Engine/Asset/Reference_generated.hpp"
#include "EngineTests/Asset/AssetA_generated.hpp" #include "AssetsForTesting/Asset/AssetA_generated.hpp"
#include "EngineTests/Asset/AssetB_generated.hpp" #include "AssetsForTesting/Asset/AssetB_generated.hpp"
#include "EASTL/unique_ptr.h" #include "EASTL/unique_ptr.h"
#include "EASTL/string.h" #include "EASTL/string.h"
+1
View File
@@ -0,0 +1 @@
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/AssetsForTesting)
+5
View File
@@ -1,5 +1,10 @@
get_filename_component(PackageName ${CMAKE_CURRENT_SOURCE_DIR} NAME) get_filename_component(PackageName ${CMAKE_CURRENT_SOURCE_DIR} NAME)
project(${PackageName}Tests) project(${PackageName}Tests)
set(Dependencies)
set(BigfootDependencies)
bigfoot_create_package_tests( bigfoot_create_package_tests(
"${Dependencies}"
"${BigfootDependencies}"
"") "")
+5
View File
@@ -1,7 +1,12 @@
get_filename_component(PackageName ${CMAKE_CURRENT_SOURCE_DIR} NAME) get_filename_component(PackageName ${CMAKE_CURRENT_SOURCE_DIR} NAME)
project(${PackageName}Tests) project(${PackageName}Tests)
set(Dependencies)
set(BigfootDependencies)
bigfoot_create_package_tests( bigfoot_create_package_tests(
"${Dependencies}"
"${BigfootDependencies}"
"") "")
bigfoot_create_logger() bigfoot_create_logger()
+56 -1
View File
@@ -51,7 +51,7 @@ function(bigfoot_create_package_lib PackagePublicDependencies PackagePrivateDepe
set_target_properties(${PROJECT_NAME} PROPERTIES FOLDER Bigfoot/${ParentFolder}) set_target_properties(${PROJECT_NAME} PROPERTIES FOLDER Bigfoot/${ParentFolder})
endfunction() endfunction()
function(bigfoot_create_package_tests ParentFolder) function(bigfoot_create_package_tests PackageDependencies PackageBigfootDependencies ParentFolder)
add_executable(${PROJECT_NAME}) add_executable(${PROJECT_NAME})
target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_20) target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_20)
@@ -59,7 +59,9 @@ function(bigfoot_create_package_tests ParentFolder)
target_link_libraries(${PROJECT_NAME} target_link_libraries(${PROJECT_NAME}
PRIVATE PRIVATE
BigfootCompileAndLinkFlags BigfootCompileAndLinkFlags
${PackageDependencies}
$<LINK_LIBRARY:WHOLE_ARCHIVE,${PackageName}> $<LINK_LIBRARY:WHOLE_ARCHIVE,${PackageName}>
$<LINK_LIBRARY:WHOLE_ARCHIVE,${PackageBigfootDependencies}>
gtest::gtest) gtest::gtest)
bigfoot_compile_flatbuffers() bigfoot_compile_flatbuffers()
@@ -153,6 +155,59 @@ function(bigfoot_create_package_tests ParentFolder)
set_target_properties(${PROJECT_NAME}Fixture PROPERTIES FOLDER UtilityTargets/Tests/Bigfoot/${ParentFolder}) set_target_properties(${PROJECT_NAME}Fixture PROPERTIES FOLDER UtilityTargets/Tests/Bigfoot/${ParentFolder})
endfunction() endfunction()
function(bigfoot_create_package_tests_helper_lib PackagePublicDependencies PackagePrivateDependencies PackageBigfootPublicDependencies PackageBigfootPrivateDependencies ParentFolder)
add_library(${PROJECT_NAME} STATIC)
target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_20)
target_link_libraries(${PROJECT_NAME}
PRIVATE
BigfootCompileAndLinkFlags
PUBLIC
${PackagePublicDependencies}
$<LINK_LIBRARY:WHOLE_ARCHIVE,${PackageBigfootPublicDependencies}>
PRIVATE
${PackagePrivateDependencies}
$<LINK_LIBRARY:WHOLE_ARCHIVE,${PackageBigfootPrivateDependencies}>)
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}
)
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} PREFIX Src FILES ${_SOURCES} ${_HEADERS} ${_OTHERS})
set_target_properties(${PROJECT_NAME} PROPERTIES FOLDER Tests/Bigfoot/${ParentFolder})
endfunction()
function(bigfoot_create_package_benchmarks ParentFolder) function(bigfoot_create_package_benchmarks ParentFolder)
add_executable(${PROJECT_NAME}) add_executable(${PROJECT_NAME})