From 3f7a0157f402e632f497b0ab9ce78d2dfd065d87 Mon Sep 17 00:00:00 2001 From: Meoweg Date: Tue, 17 Nov 2015 08:03:11 +0000 Subject: [PATCH] Split CMake project into separate subprojets --- .gitmodules | 4 +-- CMakeLists.txt | 25 +++--------------- build | 1 - build/.gitignore | 1 + build/examples/demo | 1 + configure | 6 +++-- examples/CMakeLists.txt | 3 +++ examples/demo/CMakeLists.txt | 15 +++++++++++ .../demo/data}/materials/bunny.mtl | 0 .../demo/data}/materials/car.mtl | 0 .../demo/data}/materials/protagonist.mtl | 0 .../demo/data}/materials/suzanne.mtl | 0 .../demo/data}/materials/teapot.mtl | 0 {data => examples/demo/data}/models/bunny.obj | 0 {data => examples/demo/data}/models/car.obj | 0 .../demo/data}/models/protagonist.obj | 0 .../demo/data}/models/suzanne.obj | 0 .../demo/data}/models/teapot.obj | 0 .../demo/data}/models/untitled.raw | 0 .../demo/data}/shaders/normal.frag | 0 .../demo/data}/shaders/normal.vert | 0 .../demo/data}/shaders/textured.frag | 0 .../demo/data}/shaders/textured.vert | 0 .../demo/data}/textures/bunny.png | Bin {data => examples/demo/data}/textures/car.png | Bin .../demo/data}/textures/protagonist.png | Bin .../demo/data}/textures/suzanne.png | Bin .../demo/data}/textures/teapot.png | Bin examples/{ => demo}/main.cpp | 14 +++++----- src/CMakeLists.txt | 14 ++++++++++ src/adapters/adapter.hpp | 2 +- 31 files changed, 51 insertions(+), 35 deletions(-) delete mode 160000 build create mode 100644 build/.gitignore create mode 160000 build/examples/demo create mode 100644 examples/CMakeLists.txt create mode 100644 examples/demo/CMakeLists.txt rename {data => examples/demo/data}/materials/bunny.mtl (100%) rename {data => examples/demo/data}/materials/car.mtl (100%) rename {data => examples/demo/data}/materials/protagonist.mtl (100%) rename {data => examples/demo/data}/materials/suzanne.mtl (100%) rename {data => examples/demo/data}/materials/teapot.mtl (100%) rename {data => examples/demo/data}/models/bunny.obj (100%) rename {data => examples/demo/data}/models/car.obj (100%) rename {data => examples/demo/data}/models/protagonist.obj (100%) rename {data => examples/demo/data}/models/suzanne.obj (100%) rename {data => examples/demo/data}/models/teapot.obj (100%) rename {data => examples/demo/data}/models/untitled.raw (100%) rename {data => examples/demo/data}/shaders/normal.frag (100%) rename {data => examples/demo/data}/shaders/normal.vert (100%) rename {data => examples/demo/data}/shaders/textured.frag (100%) rename {data => examples/demo/data}/shaders/textured.vert (100%) rename {data => examples/demo/data}/textures/bunny.png (100%) rename {data => examples/demo/data}/textures/car.png (100%) rename {data => examples/demo/data}/textures/protagonist.png (100%) rename {data => examples/demo/data}/textures/suzanne.png (100%) rename {data => examples/demo/data}/textures/teapot.png (100%) rename examples/{ => demo}/main.cpp (96%) create mode 100644 src/CMakeLists.txt diff --git a/.gitmodules b/.gitmodules index 46c64fb..dec8d18 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,5 +1,5 @@ -[submodule "build"] - path = build +[submodule "build/examples/demo"] + path = build/examples/demo url = git@github.com:meoweg/Matabstrix.git branch = gh-pages [submodule "vendor/glm"] diff --git a/CMakeLists.txt b/CMakeLists.txt index 96a9f42..5479772 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,25 +1,6 @@ cmake_minimum_required (VERSION 3.0) + set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/") -set (CMAKE_RUNTIME_OUTPUT_DIRECTORY "build") -set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY "build") - -project (Matabstrix) -add_definitions ("-std=c++14 -Wall -Wextra") -set (CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} "--embed-file data -s TOTAL_MEMORY=67108864") - -file (GLOB_RECURSE sources "src/**.cpp") -file (GLOB_RECURSE examples "examples/**.cpp") - -add_library (matabstrix STATIC ${sources}) - -add_executable (example ${examples}) -set (CMAKE_EXECUTABLE_SUFFIX ".html") -set_target_properties (example PROPERTIES OUTPUT_NAME "index") -target_link_libraries (example matabstrix) - -find_package (GLM REQUIRED) -include_directories (${GLM_INCLUDE_DIRS}) - -find_package (STB REQUIRED) -include_directories (${STB_INCLUDE_DIRS}) +add_subdirectory (src) +add_subdirectory (examples) diff --git a/build b/build deleted file mode 160000 index bca6b67..0000000 --- a/build +++ /dev/null @@ -1 +0,0 @@ -Subproject commit bca6b67d90f75f7dfbd9dba75aaa3eadc61b9e9e diff --git a/build/.gitignore b/build/.gitignore new file mode 100644 index 0000000..a57582c --- /dev/null +++ b/build/.gitignore @@ -0,0 +1 @@ +/src diff --git a/build/examples/demo b/build/examples/demo new file mode 160000 index 0000000..4eeedda --- /dev/null +++ b/build/examples/demo @@ -0,0 +1 @@ +Subproject commit 4eeedda5469f4a4e72a99c029cb49310de4a117a diff --git a/configure b/configure index a60d4c2..6401e35 100755 --- a/configure +++ b/configure @@ -1,11 +1,13 @@ #!/bin/sh -VENDOR="vendor" +VENDOR="../vendor" GLM="$VENDOR/glm" STB="$VENDOR/stb" -cmake \ +cd "build" + +cmake .. \ -DCMAKE_TOOLCHAIN_FILE="$EMSCRIPTEN/cmake/Modules/Platform/Emscripten.cmake" \ -DGLM_INCLUDE_DIR="$GLM" \ -DSTB_INCLUDE_DIR="$STB" diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt new file mode 100644 index 0000000..50cc0e5 --- /dev/null +++ b/examples/CMakeLists.txt @@ -0,0 +1,3 @@ +include_directories ("../src") + +add_subdirectory (demo) diff --git a/examples/demo/CMakeLists.txt b/examples/demo/CMakeLists.txt new file mode 100644 index 0000000..4f65c56 --- /dev/null +++ b/examples/demo/CMakeLists.txt @@ -0,0 +1,15 @@ +set (DATA "${CMAKE_CURRENT_LIST_DIR}/data@/") + +project (demo) +add_definitions ("-std=c++14 -Wall -Wextra") +set (CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} "--embed-file ${DATA} -s TOTAL_MEMORY=67108864") + +file (GLOB_RECURSE sources "**.cpp") + +add_executable (demo ${sources}) +set (CMAKE_EXECUTABLE_SUFFIX ".html") +set_target_properties (demo PROPERTIES OUTPUT_NAME "index") +target_link_libraries (demo matabstrix) + +find_package (GLM REQUIRED) +include_directories (${GLM_INCLUDE_DIRS}) diff --git a/data/materials/bunny.mtl b/examples/demo/data/materials/bunny.mtl similarity index 100% rename from data/materials/bunny.mtl rename to examples/demo/data/materials/bunny.mtl diff --git a/data/materials/car.mtl b/examples/demo/data/materials/car.mtl similarity index 100% rename from data/materials/car.mtl rename to examples/demo/data/materials/car.mtl diff --git a/data/materials/protagonist.mtl b/examples/demo/data/materials/protagonist.mtl similarity index 100% rename from data/materials/protagonist.mtl rename to examples/demo/data/materials/protagonist.mtl diff --git a/data/materials/suzanne.mtl b/examples/demo/data/materials/suzanne.mtl similarity index 100% rename from data/materials/suzanne.mtl rename to examples/demo/data/materials/suzanne.mtl diff --git a/data/materials/teapot.mtl b/examples/demo/data/materials/teapot.mtl similarity index 100% rename from data/materials/teapot.mtl rename to examples/demo/data/materials/teapot.mtl diff --git a/data/models/bunny.obj b/examples/demo/data/models/bunny.obj similarity index 100% rename from data/models/bunny.obj rename to examples/demo/data/models/bunny.obj diff --git a/data/models/car.obj b/examples/demo/data/models/car.obj similarity index 100% rename from data/models/car.obj rename to examples/demo/data/models/car.obj diff --git a/data/models/protagonist.obj b/examples/demo/data/models/protagonist.obj similarity index 100% rename from data/models/protagonist.obj rename to examples/demo/data/models/protagonist.obj diff --git a/data/models/suzanne.obj b/examples/demo/data/models/suzanne.obj similarity index 100% rename from data/models/suzanne.obj rename to examples/demo/data/models/suzanne.obj diff --git a/data/models/teapot.obj b/examples/demo/data/models/teapot.obj similarity index 100% rename from data/models/teapot.obj rename to examples/demo/data/models/teapot.obj diff --git a/data/models/untitled.raw b/examples/demo/data/models/untitled.raw similarity index 100% rename from data/models/untitled.raw rename to examples/demo/data/models/untitled.raw diff --git a/data/shaders/normal.frag b/examples/demo/data/shaders/normal.frag similarity index 100% rename from data/shaders/normal.frag rename to examples/demo/data/shaders/normal.frag diff --git a/data/shaders/normal.vert b/examples/demo/data/shaders/normal.vert similarity index 100% rename from data/shaders/normal.vert rename to examples/demo/data/shaders/normal.vert diff --git a/data/shaders/textured.frag b/examples/demo/data/shaders/textured.frag similarity index 100% rename from data/shaders/textured.frag rename to examples/demo/data/shaders/textured.frag diff --git a/data/shaders/textured.vert b/examples/demo/data/shaders/textured.vert similarity index 100% rename from data/shaders/textured.vert rename to examples/demo/data/shaders/textured.vert diff --git a/data/textures/bunny.png b/examples/demo/data/textures/bunny.png similarity index 100% rename from data/textures/bunny.png rename to examples/demo/data/textures/bunny.png diff --git a/data/textures/car.png b/examples/demo/data/textures/car.png similarity index 100% rename from data/textures/car.png rename to examples/demo/data/textures/car.png diff --git a/data/textures/protagonist.png b/examples/demo/data/textures/protagonist.png similarity index 100% rename from data/textures/protagonist.png rename to examples/demo/data/textures/protagonist.png diff --git a/data/textures/suzanne.png b/examples/demo/data/textures/suzanne.png similarity index 100% rename from data/textures/suzanne.png rename to examples/demo/data/textures/suzanne.png diff --git a/data/textures/teapot.png b/examples/demo/data/textures/teapot.png similarity index 100% rename from data/textures/teapot.png rename to examples/demo/data/textures/teapot.png diff --git a/examples/main.cpp b/examples/demo/main.cpp similarity index 96% rename from examples/main.cpp rename to examples/demo/main.cpp index ea39c5c..4e7baeb 100644 --- a/examples/main.cpp +++ b/examples/demo/main.cpp @@ -1,10 +1,10 @@ -#include "../src/adapters/adapter.hpp" -#include "../src/scene.hpp" -#include "../src/camera.hpp" -#include "../src/lights/sun.hpp" -#include "../src/models/raw.hpp" -#include "../src/models/static.hpp" -#include "../src/objects/with_model.hpp" +#include +#include +#include +#include +#include +#include +#include #include diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 0000000..c7f004d --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,14 @@ +cmake_minimum_required (VERSION 3.0) + +project (libmatabstrix) +add_definitions ("-std=c++14 -Wall -Wextra") + +file (GLOB_RECURSE sources "**.cpp") + +add_library (matabstrix STATIC ${sources}) + +find_package (GLM REQUIRED) +include_directories (${GLM_INCLUDE_DIRS}) + +find_package (STB REQUIRED) +include_directories (${STB_INCLUDE_DIRS}) diff --git a/src/adapters/adapter.hpp b/src/adapters/adapter.hpp index a4d4638..2c66c60 100644 --- a/src/adapters/adapter.hpp +++ b/src/adapters/adapter.hpp @@ -30,7 +30,7 @@ const T *Adapter::load(const std::string &name) const template const std::string Adapter::filename(const std::string &name) const { - return "/data" + T::filename(name); + return T::filename(name); } #endif // _ADAPTER_HPP_