From a7088bcd1f92a1f74c3738370200b9137a559e31 Mon Sep 17 00:00:00 2001 From: Nicole Collings <100Toby1@gmail.com> Date: Sun, 8 Sep 2019 11:27:28 -0700 Subject: [PATCH] Remove references of Zeus from CMake files and separate LoadLibs.cmake --- .idea/.name | 2 +- CMakeLists.txt | 77 +++++++++++++++------------------------------- LoadLibs.cmake | 44 ++++++++++++++++++++++++++ src/CMakeLists.txt | 22 +++++++++++-- 4 files changed, 89 insertions(+), 56 deletions(-) create mode 100644 LoadLibs.cmake diff --git a/.idea/.name b/.idea/.name index 80796e39..e6b8e67a 100644 --- a/.idea/.name +++ b/.idea/.name @@ -1 +1 @@ -Zeus \ No newline at end of file +Zepha \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 4aab9557..cea0dc69 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,68 +1,41 @@ cmake_minimum_required (VERSION 3.12 FATAL_ERROR) set (CMAKE_CXX_STANDARD 14) -# Define Variables -set (PROJECT_NAME "Zeus") -set (MAIN_EXEC_NAME "ZeusApp") -set (TEST_EXEC_NAME "ZeusTest") +set (PROJECT_NAME "Zepha") +set (MAIN_EXEC_NAME "Zepha") +set (TEST_EXEC_NAME "ZephaTest") project (${PROJECT_NAME}) -# Include Header only Libraries -set (HEADER_LIBRARIES - lib/header/catch2/include # Catch2 unit testing library. - lib/header/gzip/include # GZip Compression header library. - lib/header/glm/include # OpenGL Mathematics Library. - lib/header/sol2/include # Sol2 Lua Parser library. - lib/header/cute_files/include # Cute file traversal header library. - lib/header/stb_image/include # STB Image processor header library. - lib/header/json/include # JSON header library. +include_directories( + # Include Header Only Libraries + lib/header/catch2/include # Catch2 unit testing library. + lib/header/gzip/include # GZip Compression header library. + lib/header/glm/include # OpenGL Mathematics Library. + lib/header/sol2/include # Sol2 Lua Parser library. + lib/header/cute_files/include # Cute file traversal header library. + lib/header/stb_image/include # STB Image processor header library. + lib/header/json/include # JSON header library. + + # Include Static Library Headers + lib/static/glew/include # GLEW headers. + lib/static/glfw/include # GLFW headers. + lib/static/assimp/include # Assimp headers. + lib/static/lua/install/include # Lua headers. + lib/static/enet/include # ENet headers. + lib/static/noise/include # Noise headers. ) -include_directories (${HEADER_LIBRARIES}) - -# Include dynamic library headers -set (DYNAMIC_LIBRARY_HEADERS - lib/static/glew/include # GLEW headers. - lib/static/glfw/include # GLFW headers. - - lib/dynamic/enet/include # ENet headers. - lib/dynamic/noise/include # Noise headers. - lib/dynamic/lua5.3/include # Lua headers. - lib/dynamic/assimp/include # Assimp headers. -) - -include_directories (${DYNAMIC_LIBRARY_HEADERS}) - -# Add source files to the executable as a library add_subdirectory (src) -add_executable (${MAIN_EXEC_NAME} src/Main.cpp src/StartGame.h) -target_link_libraries (${MAIN_EXEC_NAME} zeusCore) +add_executable (${MAIN_EXEC_NAME} src/Main.cpp) +target_link_libraries (${MAIN_EXEC_NAME} Zepha_Core) -# Include OpenGL -find_package (OpenGL REQUIRED) -target_link_libraries(${MAIN_EXEC_NAME} ${OPENGL_gl_LIBRARY}) - -# GLFW Static Library -set (GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE) -set (GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE) -set (GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE) - -add_subdirectory (lib/static/glfw) -target_link_libraries (${MAIN_EXEC_NAME} glfw) - -# Glew Static Library -add_subdirectory (lib/static/glew/build/cmake) -target_link_libraries (${MAIN_EXEC_NAME} glew) - -# Include the other dynamic libraries - End goal would be to build these at compile time -set (ZEUS_LIBRARIES pthread lua5.3 z enet noise assimp) - -target_link_libraries (${MAIN_EXEC_NAME} ${ZEUS_LIBRARIES}) +# Load Libraries +include(${CMAKE_CURRENT_SOURCE_DIR}/LoadLibs.cmake) # Test Build #add_subdirectory(test) #add_executable(${TEST_EXEC_NAME} test/Main.cpp) # -#target_link_libraries(${TEST_EXEC_NAME} zeusCore) +#target_link_libraries(${TEST_EXEC_NAME} Zepha_Core) #target_link_libraries(${TEST_EXEC_NAME} zeusTest) diff --git a/LoadLibs.cmake b/LoadLibs.cmake new file mode 100644 index 00000000..88d1a569 --- /dev/null +++ b/LoadLibs.cmake @@ -0,0 +1,44 @@ +# Find and Link OpenGL +find_package (OpenGL REQUIRED) +target_link_libraries(${MAIN_EXEC_NAME} ${OPENGL_gl_LIBRARY}) + +# Build and Link GLFW +set (GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE) +set (GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE) +set (GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE) + +add_subdirectory (lib/static/glfw) +target_link_libraries (${MAIN_EXEC_NAME} glfw) +include_directories(lib/static/glfw/src) + +# Link Glew +target_link_libraries(${MAIN_EXEC_NAME} ${CMAKE_SOURCE_DIR}/lib/static/glew/libGLEW.a) + +# Build and Link Assimp +set(BUILD_SHARED_LIBS OFF) +set(ASSIMP_NO_EXPORT ON) +set(ASSIMP_BUILD_TESTS OFF) +set(ASSIMP_BUILD_ASSIMP_TOOLS OFF) + +set(ASSIMP_BUILD_ALL_IMPORTERS_BY_DEFAULT OFF) +set(ASSIMP_BUILD_B3D_IMPORTER ON) +set(ASSIMP_BUILD_X3D_IMPORTER ON) # Doesn't compile if not defined + +add_subdirectory(lib/static/assimp) +target_compile_options(assimp PRIVATE -w) +target_link_libraries(${MAIN_EXEC_NAME} assimp) + +# Link Lua 5.3.5 +target_link_libraries(${MAIN_EXEC_NAME} ${CMAKE_SOURCE_DIR}/lib/static/lua/install/lib/liblua.a) + +# Enet +target_link_libraries(${MAIN_EXEC_NAME} ${CMAKE_SOURCE_DIR}/lib/static/enet/.libs/libenet.a) + +# Link Noise +target_link_libraries(${MAIN_EXEC_NAME} ${CMAKE_SOURCE_DIR}/lib/static/noise/build/src/libnoise.a) + +# Link PThread Dynamically +target_link_libraries (${MAIN_EXEC_NAME} pthread) + +# Link Z Dynamically +target_link_libraries (${MAIN_EXEC_NAME} z) \ No newline at end of file diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index b9b4a37d..76d98543 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,4 +1,4 @@ -set(ZEUS_SRC_FILES +set(ZEPHA_SRC game/graph/ChunkMesh.cpp game/graph/ChunkMesh.h game/entity/Entity.cpp @@ -195,6 +195,22 @@ set(ZEUS_SRC_FILES game/graph/GuiMesh.h game/graph/GuiVertex.h game/hud/GuiEntity.cpp - game/hud/GuiEntity.h util/Mat4Conv.h game/entity/ModelBone.cpp game/entity/ModelBone.h game/entity/ModelAnimation.cpp game/entity/ModelAnimation.h game/entity/AnimChannel.cpp game/entity/AnimChannel.h game/entity/AnimationState.cpp game/entity/AnimationState.h game/entity/AnimationSegment.h util/Pointer.h lua/api/type/cEntity.h lua/api/customization/pVec3.cpp lua/api/customization/pVec3.h) + game/hud/GuiEntity.h + util/Mat4Conv.h + game/entity/ModelBone.cpp + game/entity/ModelBone.h + game/entity/ModelAnimation.cpp + game/entity/ModelAnimation.h + game/entity/AnimChannel.cpp + game/entity/AnimChannel.h + game/entity/AnimationState.cpp + game/entity/AnimationState.h + game/entity/AnimationSegment.h + util/Pointer.h + lua/api/type/cEntity.h + lua/api/customization/pVec3.cpp + lua/api/customization/pVec3.h + StartGame.h +) -add_library (zeusCore ${ZEUS_SRC_FILES}) \ No newline at end of file +add_library (Zepha_Core ${ZEPHA_SRC}) \ No newline at end of file