Advertisement
Guest User

Untitled

a guest
Apr 12th, 2019
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
CMake 4.96 KB | None | 0 0
  1. cmake_minimum_required(VERSION 3.8)
  2.  
  3. project(Voksel)
  4.  
  5. # configuring compilation flags
  6.  
  7. if (NOT DEBUG)
  8.     message(STATUS "To enable debug mode, use -DDEBUG=true")
  9.     message(STATUS "Falling back to release")
  10.    
  11.     set(DEBUG "false" CACHE STRING "Enables debug mode" FORCE)
  12. endif()
  13.  
  14. # searching for modules and libraries
  15.  
  16. list(APPEND CMAKE_MODULE_PATH "${Voksel_SOURCE_DIR}/cmake")
  17.  
  18. find_package(OpenGL REQUIRED)
  19. if (OPENGL_FOUND)
  20.     message(STATUS "Packages: OpenGL found")
  21.     include_directories(${OPENGL_INCLUDE_DIRS})
  22.     link_libraries(${OPENGL_LIBRARIES})
  23. endif()
  24.  
  25. if (UNIX OR LINUX)
  26.     find_package(OpenAL REQUIRED)
  27.     if (OPENAL_FOUND)
  28.         message(STATUS "Packages: OpenAL found")
  29.         include_directories(${OPENAL_INCLUDE_DIRS})
  30.         link_libraries(${OPENAL_LIBRARIES})
  31.     endif()
  32.  
  33.     find_package(GLFW REQUIRED)
  34.     if (GLFW_FOUND)
  35.         message(STATUS "Packages: GLFW found")
  36.         include_directories(${GLFW_INCLUDE_DIRS})
  37.         link_libraries(${GLFW_LIBRARIES})
  38.     endif()
  39.  
  40.     find_package(GLM REQUIRED)
  41.     if (GLM_FOUND)
  42.         message(STATUS "Packages: GLM found")
  43.         include_directories(${GLM_INCLUDE_DIRS})
  44.     endif()
  45.  
  46.     find_package(SFML REQUIRED system network audio)
  47.     if (SFML_FOUND)
  48.         message(STATUS "Packages: SFML found")
  49.         include_directories(${SFML_INCLUDE_DIRS})
  50.         link_libraries(${SFML_LIBRARIES})
  51.     endif()
  52. elseif(WIN32)
  53.     # Windows, Apple won't be supported
  54.     include_directories(${Voksel_SOURCE_DIR}/Windows/include)
  55.  
  56.     find_library(GLFW_LIB       NAMES "glfw3.lib"      PATHS ${Voksel_SOURCE_DIR}/Windows/libs/lib-glfw/lib-vc2015)
  57.     find_library(FLAC_LIB       NAMES "flac.lib"       PATHS ${Voksel_SOURCE_DIR}/Windows/libs/lib-sfml)
  58.     find_library(OGG_LIB        NAMES "ogg.lib"        PATHS ${Voksel_SOURCE_DIR}/Windows/libs/lib-sfml)
  59.     find_library(OPENAL32_LIB   NAMES "openal32.lib"   PATHS ${Voksel_SOURCE_DIR}/Windows/libs/lib-sfml)
  60.     find_library(VORBIS_LIB     NAMES "vorbis.lib"     PATHS ${Voksel_SOURCE_DIR}/Windows/libs/lib-sfml)
  61.     find_library(VORBISENC_LIB  NAMES "vorbisenc.lib"  PATHS ${Voksel_SOURCE_DIR}/Windows/libs/lib-sfml)
  62.     find_library(VORBISFILE_LIB NAMES "vorbisfile.lib" PATHS ${Voksel_SOURCE_DIR}/Windows/libs/lib-sfml)
  63.    
  64.     find_library(SFML_AUDIO_LIB   NAMES "sfml-audio.lib"   PATHS ${Voksel_SOURCE_DIR}/Windows/libs/lib-sfml)
  65.     find_library(SFML_NETWORK_LIB NAMES "sfml-network.lib" PATHS ${Voksel_SOURCE_DIR}/Windows/libs/lib-sfml)
  66.     find_library(SFML_SYSTEM_LIB  NAMES "sfml-system.lib"  PATHS ${Voksel_SOURCE_DIR}/Windows/libs/lib-sfml)
  67.    
  68.     find_library(SFML_AUDIO_LIB_DEBUG   NAMES "sfml-audio-d.lib"   PATHS ${Voksel_SOURCE_DIR}/Windows/libs/lib-sfml)
  69.     find_library(SFML_NETWORK_LIB_DEBUG NAMES "sfml-network-d.lib" PATHS ${Voksel_SOURCE_DIR}/Windows/libs/lib-sfml)
  70.     find_library(SFML_SYSTEM_LIB_DEBUG  NAMES "sfml-system-d.lib"  PATHS ${Voksel_SOURCE_DIR}/Windows/libs/lib-sfml)
  71. else()
  72.     message(AUTHOR_WARNING "Operating System not supported")
  73. endif()
  74.  
  75. # adding game include directories and source files
  76.  
  77. include_directories(
  78.     ${Voksel_SOURCE_DIR}/include
  79.     ${Voksel_SOURCE_DIR}/extern
  80.     ${Voksel_SOURCE_DIR}/extern/lua-5-3-4
  81.     ${Voksel_SOURCE_DIR}/submodules/Zavtrak/include
  82. )
  83.  
  84. file(GLOB_RECURSE SOURCE_FILES
  85.     # Zavtrak, 3D rendering engine
  86.     ${Voksel_SOURCE_DIR}/submodules/Zavtrak/src/Zavtrak/*.cpp
  87.     ${Voksel_SOURCE_DIR}/submodules/Zavtrak/src/glad/*.c
  88.     ${Voksel_SOURCE_DIR}/submodules/Zavtrak/src/stb/*.cpp
  89.  
  90.     # imgui, bloat-free graphical user interface library
  91.     ${Voksel_SOURCE_DIR}/extern/imgui/*.cpp
  92.  
  93.     # lua 5.3.4
  94.     ${Voksel_SOURCE_DIR}/extern/lua-5-3-4/*.c
  95.    
  96.     # game sources
  97.     ${Voksel_SOURCE_DIR}/src/*.cpp
  98. )
  99.  
  100. add_executable(Voksel ${SOURCE_FILES})
  101.  
  102. if (WIN32)
  103.     target_link_libraries(
  104.         Voksel
  105.         ${GLFW_LIB}
  106.         ${FLAC_LIB}
  107.         ${OGG_LIB}
  108.         ${OPENAL32_LIB}
  109.         ${VORBIS_LIB}
  110.         ${VORBISENC_LIB}
  111.         ${VORBISFILE_LIB}
  112.     )
  113.     target_link_libraries(
  114.         Voksel
  115.         debug
  116.             ${SFML_AUDIO_LIB_DEBUG}
  117.         optimized
  118.             ${SFML_AUDIO_LIB}
  119.     )
  120.     target_link_libraries(
  121.         Voksel
  122.         debug
  123.             ${SFML_NETWORK_LIB_DEBUG}
  124.         optimized
  125.             ${SFML_NETWORK_LIB}
  126.     )
  127.     target_link_libraries(
  128.         Voksel
  129.         debug
  130.             ${SFML_SYSTEM_LIB_DEBUG}
  131.         optimized
  132.             ${SFML_SYSTEM_LIB}
  133.     )
  134. endif()
  135.  
  136. set_target_properties(
  137.     Voksel
  138.     PROPERTIES
  139.         CXX_STANDARD 17
  140.         CXX_STANDARD_REQUIRED ON
  141.         CXX_EXTENSIONS OFF
  142. )
  143.  
  144. if (DEBUG MATCHES "true")
  145.     message(STATUS "Debug mode")
  146.  
  147.     if (CMAKE_COMPILER_IS_GNUCXX)
  148.         set(CMAKE_CXX_FLAGS "-DIMGUI_IMPL_OPENGL_LOADER_GLAD")
  149.         #set(CMAKE_CXX_FLAGS "-pg -g -no-pie -DIMGUI_IMPL_OPENGL_LOADER_GLAD")
  150.         #set(CMAKE_EXE_LINKER_FLAGS "-lstdc++fs")
  151.     endif()
  152. else()
  153.     message(STATUS "Release mode")
  154. endif()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement