mirror of
https://github.com/JoeyDeVries/LearnOpenGL.git
synced 2026-01-02 04:37:54 +08:00
Out-of-source builds without environment variables.
Using CMake's configure_file command to generate a header file defining a C string containing the path to the source root directory; the directory where the resource folder is. Textures and models can now be found directly as long the user doesn't move stuff around. Shaders are still a problem.
This commit is contained in:
@@ -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}})
|
||||
|
||||
1
configuration/root_directory.h.in
Normal file
1
configuration/root_directory.h.in
Normal file
@@ -0,0 +1 @@
|
||||
const char * logl_root = "${CMAKE_SOURCE_DIR}";
|
||||
@@ -2,6 +2,7 @@
|
||||
#define FILESYSTEM_H
|
||||
|
||||
#include <string>
|
||||
#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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user