feat: allow cmake built executable to be run anywhere
This commit is contained in:
parent
7788b5f6be
commit
ec70bb48ac
@ -2,6 +2,10 @@
|
|||||||
#include "imgui_impl_glfw.h"
|
#include "imgui_impl_glfw.h"
|
||||||
#include "imgui_impl_opengl3.h"
|
#include "imgui_impl_opengl3.h"
|
||||||
|
|
||||||
|
#ifdef LINUX
|
||||||
|
#include <cstdlib>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <glad/glad.h>
|
#include <glad/glad.h>
|
||||||
#include <GLFW/glfw3.h>
|
#include <GLFW/glfw3.h>
|
||||||
#define STB_IMAGE_IMPLEMENTATION
|
#define STB_IMAGE_IMPLEMENTATION
|
||||||
@ -56,8 +60,26 @@ float rectangleVertices[] =
|
|||||||
-1.0f, 1.0f, 0.0f, 1.0f
|
-1.0f, 1.0f, 0.0f, 1.0f
|
||||||
};
|
};
|
||||||
|
|
||||||
int main()
|
int main (int argc, char *argv[]) {
|
||||||
{
|
#ifdef LINUX
|
||||||
|
char* resolved_path = realpath(argv[0],NULL);
|
||||||
|
if (resolved_path == NULL) {
|
||||||
|
printf("%s: Please do not place binary in PATH\n", argv[0]);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
size_t resolved_length = strlen(resolved_path);
|
||||||
|
|
||||||
|
// remove executable from path
|
||||||
|
for (size_t i = resolved_length; i > 0; i--) {
|
||||||
|
if (resolved_path[i] == '/' && resolved_path[i+1] != 0) {
|
||||||
|
resolved_path[i+1] = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
chdir(resolved_path);
|
||||||
|
free(resolved_path);
|
||||||
|
#endif
|
||||||
|
|
||||||
// Initialize GLFW
|
// Initialize GLFW
|
||||||
glfwInit();
|
glfwInit();
|
||||||
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
|
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
|
||||||
@ -405,4 +427,4 @@ void mouse_callback(GLFWwindow* window, double xpos, double ypos)
|
|||||||
void scroll_callback(GLFWwindow* window, double xoffset, double yoffset)
|
void scroll_callback(GLFWwindow* window, double xoffset, double yoffset)
|
||||||
{
|
{
|
||||||
camera.ProcessMouseScroll(yoffset);
|
camera.ProcessMouseScroll(yoffset);
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,11 @@ add_executable(scuffed_mc
|
|||||||
Camera.cpp Planet.cpp WorldGen.cpp ../vendor/glad.c
|
Camera.cpp Planet.cpp WorldGen.cpp ../vendor/glad.c
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if(LINUX)
|
||||||
|
add_compile_definitions(LINUX)
|
||||||
|
endif()
|
||||||
|
|
||||||
# make sure the program runs in the right place from visual studio
|
# make sure the program runs in the right place from visual studio
|
||||||
set_target_properties(scuffed_mc PROPERTIES VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/bin")
|
set_target_properties(scuffed_mc PROPERTIES VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/bin")
|
||||||
|
|
||||||
target_link_libraries(scuffed_mc imgui $<IF:$<PLATFORM_ID:Windows>,glfw3,glfw>)
|
target_link_libraries(scuffed_mc imgui $<IF:$<PLATFORM_ID:Windows>,glfw3,glfw>)
|
||||||
|
Loading…
Reference in New Issue
Block a user