Improve CMakeLists.txt, Fix Windows builds
This commit is contained in:
parent
0944fc6206
commit
296b667268
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,2 +1,3 @@
|
|||||||
build/
|
build/
|
||||||
|
build.win/
|
||||||
.vscode/
|
.vscode/
|
||||||
|
@ -1,8 +1,7 @@
|
|||||||
cmake_minimum_required(VERSION 3.10)
|
cmake_minimum_required(VERSION 3.13)
|
||||||
|
|
||||||
project(KekEngine VERSION 1.0)
|
project(KekEngine VERSION 1.0)
|
||||||
|
|
||||||
option(BUILD_SHARED_LIBS "Build as a shared library" ON)
|
|
||||||
option(KEKENGINE_DEBUG "Build with debug information" OFF)
|
option(KEKENGINE_DEBUG "Build with debug information" OFF)
|
||||||
option(KEKENGINE_VR "Include VR support" OFF)
|
option(KEKENGINE_VR "Include VR support" OFF)
|
||||||
option(KEKENGINE_BUILD_KEKGAME "Build kekgame" OFF)
|
option(KEKENGINE_BUILD_KEKGAME "Build kekgame" OFF)
|
||||||
@ -12,7 +11,7 @@ if(UNIX)
|
|||||||
endif()
|
endif()
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
set(KEKENGINE_TARGET_PLATFORM Windows)
|
set(KEKENGINE_TARGET_PLATFORM Windows)
|
||||||
set(BUILD_SHARED_LIBS OFF)
|
#set(BUILD_SHARED_LIBS OFF)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
message("Build shared libs: ${BUILD_SHARED_LIBS}")
|
message("Build shared libs: ${BUILD_SHARED_LIBS}")
|
||||||
@ -56,9 +55,11 @@ add_custom_command(TARGET kekengine_res PRE_BUILD
|
|||||||
tar cf ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/resources.tar ${KEKENGINE_RELATIVE_RESOURCE_FILES})
|
tar cf ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/resources.tar ${KEKENGINE_RELATIVE_RESOURCE_FILES})
|
||||||
|
|
||||||
# libkekengine
|
# libkekengine
|
||||||
add_library(kekengine ${KEKENGINE_SOURCE_FILES})
|
add_library(kekengine OBJECT ${KEKENGINE_SOURCE_FILES})
|
||||||
|
set_property(TARGET kekengine PROPERTY POSITION_INDEPENDENT_CODE 1)
|
||||||
add_dependencies(kekengine kekengine_res)
|
add_dependencies(kekengine kekengine_res)
|
||||||
|
|
||||||
|
set_property(TARGET microtar PROPERTY POSITION_INDEPENDENT_CODE 1)
|
||||||
target_link_libraries(kekengine PUBLIC microtar)
|
target_link_libraries(kekengine PUBLIC microtar)
|
||||||
|
|
||||||
if(UNIX)
|
if(UNIX)
|
||||||
@ -72,6 +73,7 @@ if(UNIX)
|
|||||||
endif()
|
endif()
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
target_link_libraries(kekengine PUBLIC glfw3 glew32s opengl32)
|
target_link_libraries(kekengine PUBLIC glfw3 glew32s opengl32)
|
||||||
|
target_compile_definitions(kekengine PUBLIC GLEW_STATIC)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(${KEKENGINE_VR})
|
if(${KEKENGINE_VR})
|
||||||
@ -93,6 +95,13 @@ if(${KEKENGINE_VR})
|
|||||||
target_include_directories(kekengine PRIVATE "dependencies/openvr/headers")
|
target_include_directories(kekengine PRIVATE "dependencies/openvr/headers")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
add_library(kekengine_shared SHARED $<TARGET_OBJECTS:kekengine>)
|
||||||
|
target_link_libraries(kekengine_shared PUBLIC kekengine)
|
||||||
|
set_target_properties(kekengine_shared PROPERTIES OUTPUT_NAME kekengine)
|
||||||
|
add_library(kekengine_static STATIC $<TARGET_OBJECTS:kekengine>)
|
||||||
|
target_link_libraries(kekengine_static PUBLIC kekengine)
|
||||||
|
set_target_properties(kekengine_static PROPERTIES OUTPUT_NAME kekengine)
|
||||||
|
|
||||||
if(${KEKENGINE_BUILD_KEKGAME})
|
if(${KEKENGINE_BUILD_KEKGAME})
|
||||||
# kekgame resources
|
# kekgame resources
|
||||||
add_custom_target(kekgame_res ALL
|
add_custom_target(kekgame_res ALL
|
||||||
@ -109,6 +118,6 @@ if(${KEKENGINE_BUILD_KEKGAME})
|
|||||||
add_executable(kekgame ${KEKGAME_SOURCE_FILES})
|
add_executable(kekgame ${KEKGAME_SOURCE_FILES})
|
||||||
add_dependencies(kekgame kekgame_res)
|
add_dependencies(kekgame kekgame_res)
|
||||||
|
|
||||||
target_link_libraries(kekgame PUBLIC kekengine)
|
target_link_libraries(kekgame PUBLIC kekengine_static)
|
||||||
target_include_directories(kekgame PRIVATE "src/kekengine/include")
|
target_include_directories(kekgame PRIVATE "src/kekengine/include")
|
||||||
endif()
|
endif()
|
||||||
|
@ -26,15 +26,15 @@ int main(int argc, char **argv) {
|
|||||||
scene->addObject(test2);
|
scene->addObject(test2);
|
||||||
}
|
}
|
||||||
|
|
||||||
//PointLight *light = new PointLight(glm::vec3(1), 1, 0, 1);
|
PointLight *light = new PointLight(glm::vec3(1), 1, 0, 1);
|
||||||
//scene->lights->add(light);
|
scene->lights->add(light);
|
||||||
|
|
||||||
//DirectionalLight *l = new DirectionalLight(glm::vec3(1), glm::vec3(1, -1, 1));
|
DirectionalLight *l = new DirectionalLight(glm::vec3(1), glm::vec3(1, -1, 1));
|
||||||
//scene->lights->add(l);
|
scene->lights->add(l);
|
||||||
|
|
||||||
SpotLight *spot = new SpotLight(glm::vec3(1), glm::vec3(0, 0, -1), 1, 0, 1, glm::radians(8.0f), glm::radians(15.0f));
|
//SpotLight *spot = new SpotLight(glm::vec3(1), glm::vec3(0, 0, -1), 1, 0, 1, glm::radians(8.0f), glm::radians(15.0f));
|
||||||
spot->moveTo(glm::vec3(0, 0, 5));
|
//spot->moveTo(glm::vec3(0, 0, 5));
|
||||||
scene->lights->add(spot);
|
//scene->lights->add(spot);
|
||||||
|
|
||||||
Engine::setActiveScene(scene);
|
Engine::setActiveScene(scene);
|
||||||
|
|
||||||
|
@ -6,8 +6,6 @@ set(CMAKE_CXX_COMPILER x86_64-w64-mingw32-g++)
|
|||||||
set(CMAKE_C_FLAGS -w)
|
set(CMAKE_C_FLAGS -w)
|
||||||
set(CMAKE_CXX_FLAGS -w)
|
set(CMAKE_CXX_FLAGS -w)
|
||||||
|
|
||||||
set(KEKENGINE_TARGET_PLATFORM Windows)
|
|
||||||
|
|
||||||
set(CMAKE_FIND_ROOT_PATH /usr/x86_64-w64-mingw32/)
|
set(CMAKE_FIND_ROOT_PATH /usr/x86_64-w64-mingw32/)
|
||||||
link_directories(windows/lib/)
|
link_directories(windows/lib/)
|
||||||
include_directories(windows/include/)
|
include_directories(windows/include/)
|
||||||
|
Loading…
Reference in New Issue
Block a user