Fix conanfile.py, add example usage conan project
This commit is contained in:
parent
c3dee0f242
commit
e71ad71097
5 changed files with 82 additions and 0 deletions
23
conan_usage_example/CMakeLists.txt
Normal file
23
conan_usage_example/CMakeLists.txt
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
cmake_minimum_required(VERSION 3.7)
|
||||||
|
project(ECMS_Conan_Example)
|
||||||
|
|
||||||
|
set(ECMS_Conan_Example_SOURCES
|
||||||
|
src/main.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
add_compile_options(
|
||||||
|
-Wall -Wextra -Wpedantic -Wno-missing-braces
|
||||||
|
$<$<COMPILE_LANGUAGE:CXX>:-Weffc++>
|
||||||
|
$<$<CONFIG:DEBUG>:-Og>
|
||||||
|
)
|
||||||
|
|
||||||
|
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
|
||||||
|
message(STATUS "Setting build type to 'Debug', none was specified.")
|
||||||
|
set(CMAKE_BUILD_TYPE Debug CACHE STRING "Choose the type of build." FORCE)
|
||||||
|
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
find_package(ecms CONFIG REQUIRED)
|
||||||
|
|
||||||
|
add_executable(ECMS_Conan_Example ${ECMS_Conan_Example_SOURCES})
|
||||||
|
target_link_libraries(ECMS_Conan_Example ecms::ecms)
|
6
conan_usage_example/conanfile.txt
Normal file
6
conan_usage_example/conanfile.txt
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
[requires]
|
||||||
|
ecms/1.0
|
||||||
|
|
||||||
|
[generators]
|
||||||
|
CMakeDeps
|
||||||
|
CMakeToolchain
|
17
conan_usage_example/setup_build_with_conan.sh
Executable file
17
conan_usage_example/setup_build_with_conan.sh
Executable file
|
@ -0,0 +1,17 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
cd "$(dirname "$0")"
|
||||||
|
|
||||||
|
set -ve
|
||||||
|
|
||||||
|
if ! [[ -e "${HOME}/.conan2/profiles/default" ]]; then
|
||||||
|
conan profile detect
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! grep stephens_forgejo "${HOME}/.conan2/remotes.json" >&/dev/null; then
|
||||||
|
conan remote add stephens_forgejo "https://git.seodisparate.com/api/packages/stephenseo/conan"
|
||||||
|
fi
|
||||||
|
|
||||||
|
conan install . -r stephens_forgejo --output-folder=buildConan
|
||||||
|
cmake -S . -B buildConan -DCMAKE_TOOLCHAIN_FILE=buildConan/conan_toolchain.cmake -DCMAKE_BUILD_TYPE=Release
|
||||||
|
cmake --build buildConan
|
35
conan_usage_example/src/main.cpp
Normal file
35
conan_usage_example/src/main.cpp
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
#include <EC/Manager.hpp>
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
struct CPosition {
|
||||||
|
CPosition(float x = 0.0F, float y = 0.0F) : x(x), y(y) {}
|
||||||
|
float x, y;
|
||||||
|
};
|
||||||
|
|
||||||
|
using EmptyTypeList = EC::Meta::TypeList<>;
|
||||||
|
using ComponentsTypeList = EC::Meta::TypeList<CPosition>;
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
auto manager = EC::Manager<ComponentsTypeList, EmptyTypeList>{};
|
||||||
|
|
||||||
|
auto entity_id = manager.addEntity();
|
||||||
|
manager.addComponent<CPosition>(entity_id, 1.0F, 2.0F);
|
||||||
|
|
||||||
|
manager.forMatchingSignature<ComponentsTypeList>(
|
||||||
|
[] (std::size_t, void *, CPosition *pos)
|
||||||
|
{
|
||||||
|
if (pos->x != 1.0F) {
|
||||||
|
std::clog << "WARNING: pos->x is not 1.0F! (" << pos->x
|
||||||
|
<< ")\n";
|
||||||
|
}
|
||||||
|
if (pos->y != 2.0F) {
|
||||||
|
std::clog << "WARNING: pos->x is not 2.0F! (" << pos->y
|
||||||
|
<< ")\n";
|
||||||
|
}
|
||||||
|
},
|
||||||
|
nullptr,
|
||||||
|
false);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
|
@ -18,3 +18,4 @@ class ECMSConan(ConanFile):
|
||||||
# so it's recommended to set those as empty.
|
# so it's recommended to set those as empty.
|
||||||
self.cpp_info.bindirs = []
|
self.cpp_info.bindirs = []
|
||||||
self.cpp_info.libdirs = []
|
self.cpp_info.libdirs = []
|
||||||
|
self.cpp_info.includedirs = ['src']
|
||||||
|
|
Loading…
Reference in a new issue