diff --git a/CMakeLists.txt b/CMakeLists.txt index 07b08cc..09a89e5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -111,6 +111,8 @@ set(5.advanced_lighting ) +configure_file(configuration/root_directory.h.in configuration/root_directory.h) +include_directories(${CMAKE_BINARY_DIR}/configuration) foreach(CHAPTER ${CHAPTERS}) foreach(DEMO ${${CHAPTER}}) diff --git a/configuration/root_directory.h.in b/configuration/root_directory.h.in new file mode 100644 index 0000000..daefa5f --- /dev/null +++ b/configuration/root_directory.h.in @@ -0,0 +1 @@ +const char * logl_root = "${CMAKE_SOURCE_DIR}"; \ No newline at end of file diff --git a/includes/learnopengl/filesystem.h b/includes/learnopengl/filesystem.h index 7cb469c..80f1e88 100644 --- a/includes/learnopengl/filesystem.h +++ b/includes/learnopengl/filesystem.h @@ -2,6 +2,7 @@ #define FILESYSTEM_H #include +#include "root_directory.h" // This is a configuration file generated by CMake. class FileSystem { @@ -18,7 +19,8 @@ public: private: static std::string const & getRoot() { - static char const * givenRoot {getenv("LOGL_ROOT_PATH")}; + static char const * envRoot = getenv("LOGL_ROOT_PATH"); + static char const * givenRoot {envRoot != nullptr ? envRoot : logl_root}; static std::string root {givenRoot != nullptr ? givenRoot : ""}; return root; }