From 8c8edc215956293bd17a3d215bb66ec6190a3f7c Mon Sep 17 00:00:00 2001 From: devZoGok Date: Thu, 1 Apr 2021 16:19:57 +0300 Subject: [PATCH] CMakeLists.txt simplification improved error checking --- CMakeLists.txt | 31 +++++++++++++------------------ root.cpp | 15 ++++++++++----- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index db09dee..1c14d12 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,11 +1,10 @@ -cmake_minimum_required(VERSION 3.3) +cmake_minimum_required(VERSION 3.2) project(vb01) set(CMAKE_BUILD_TYPE Debug) set(STB_HEADERS external/stb/) -#add_subdirectory(src/) set(INCLUDE_DIR include/) -SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -pthread -pedantic") +SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread -pedantic") set(CMAKE_POSITION_INDEPENDENT_CODE ON) cmake_policy(SET CMP0015 NEW) @@ -24,7 +23,7 @@ include_directories(${STB_HEADERS}) include_directories(external/glm) include_directories(external/glm/glm) -add_library(${PROJECT_NAME} SHARED ${LIB_SRC}) +add_library(${PROJECT_NAME} STATIC ${LIB_SRC}) set(GLFW_DIR external/glfw) set(FREETYPE_DIR external/freetype) @@ -33,31 +32,28 @@ set(CPPUNIT_DIR external/CppUnit) add_subdirectory(${GLFW_DIR}) if(UNIX) - set(GLFW_LIB_DIR ${GLFW_DIR}) + message("Building for UNIX") + set(GLFW_LIB_DIR build/${GLFW_DIR}/src) elseif(WIN32) - set(GLFW_LIB_DIR ${GLFW_DIR}/src/Debug) + message("Building for Windows") + set(GLFW_LIB_DIR build/${GLFW_DIR}/src/Debug) endif() target_include_directories(${PROJECT_NAME} PUBLIC ${GLFW_DIR}/include/GLFW) target_link_directories(${PROJECT_NAME} PUBLIC ${GLFW_LIB_DIR}) add_subdirectory(${ASSIMP_DIR}) if(UNIX) - set(ASSIMP_LIB_DIR ${ASSIMP_DIR}/bin) + set(ASSIMP_LIB_DIR build/${ASSIMP_DIR}/lib) elseif(WIN32) - set(ASSIMP_LIB_DIR ${ASSIMP_DIR}/bin/Debug) + set(ASSIMP_LIB_DIR build/${ASSIMP_DIR}/lib/Debug) endif() target_include_directories(${PROJECT_NAME} PUBLIC ${ASSIMP_DIR}/include/assimp) target_link_directories(${PROJECT_NAME} PUBLIC ${ASSIMP_LIB_DIR}) if(UNIX) - execute_process(COMMAND ${FREETYPE_DIR}/autogen.sh) - execute_process(COMMAND ${FREETYPE_DIR}/configure) - execute_process(COMMAND make -c ${FREETYPE_DIR}) - set(FREETYPE_LIB_DIR ${FREETYPE_DIR}/objs/.lib) + set(FREETYPE_LIB_DIR build/${FREETYPE_DIR}) elseif(WIN32) - execute_process(COMMAND cmake -E build_directory build) - execute_process(COMMAND cmake -E chdir build cmake ..) - set(FREETYPE_LIB_DIR ${FREETYPE_DIR}/build/Debug) + set(FREETYPE_LIB_DIR build/${FREETYPE_DIR}/Debug) endif() add_subdirectory(${FREETYPE_DIR}) target_include_directories(${PROJECT_NAME} PUBLIC ${FREETYPE_DIR}/include) @@ -76,10 +72,9 @@ set(TEST_SRC main.cpp ${LIB_SRC} ${RENDER_TEST} ${ARMATURE_TEST} ${MODEL_TEST} $ add_executable(vb01Tests ${TEST_SRC}) if(UNIX) - execute_process(COMMAND ${CPPUNIT_DIR}/autogen.sh) - set(CPPUNIT_LIB_DIR ${CPPUNIT_DIR}) + set(CPPUNIT_LIB_DIR build/${CPPUNIT_DIR}) elseif(WIN32) - set(CPPUNIT_LIB_DIR ${CPPUNIT_DIR}/Debug) + set(CPPUNIT_LIB_DIR build/${CPPUNIT_DIR}/Debug) endif() add_subdirectory(${CPPUNIT_DIR}) target_include_directories(${PROJECT_NAME} PUBLIC ${CPPUNIT_DIR}/include) diff --git a/root.cpp b/root.cpp index f6a12e0..248c8ee 100755 --- a/root.cpp +++ b/root.cpp @@ -25,6 +25,12 @@ namespace vb01{ glViewport(0, 0, width, height); } + void error_callback(int error, const char* msg) { + std::string s; + s = " [" + std::to_string(error) + "] " + msg + '\n'; + std::cerr << s << std::endl; + } + Root::Root(){ rootNode = new Node(Vector3::VEC_ZERO); guiNode = new Node(Vector3::VEC_ZERO); @@ -46,13 +52,12 @@ namespace vb01{ } void Root::initWindow(string name){ - glfwInit(); - glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4); - glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); - glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); + glfwSetErrorCallback(error_callback); + if (GL_TRUE != glfwInit()) + std::cerr << "Error initialising glfw" << std::endl; window = glfwCreateWindow(width, height, name.c_str(), NULL, NULL); if(window == NULL){ - cout << "Failed to load window.\n"; + cout << "Failed to load window...\n"; exit(-1); } glfwMakeContextCurrent(window);