93 lines
3.4 KiB
CMake
Executable File
93 lines
3.4 KiB
CMake
Executable File
cmake_minimum_required(VERSION 3.0)
|
|
project(DarkRP2D)
|
|
set (CMAKE_CXX_STANDARD 11)
|
|
include(ExternalProject)
|
|
|
|
if(NOT CMAKE_BUILD_TYPE)
|
|
set(CMAKE_BUILD_TYPE RELEASE)
|
|
add_definitions(-DNDEBUG)
|
|
endif(NOT CMAKE_BUILD_TYPE)
|
|
|
|
MESSAGE( STATUS "PROJECT_SOURCE_DIR: " ${PROJECT_SOURCE_DIR} )
|
|
MESSAGE( STATUS "DarkRP2D_SOURCE_DIR: " ${DarkRP2D_SOURCE_DIR} )
|
|
|
|
set(DarkRP2D_EXTERNAL_DIR ${DarkRP2D_SOURCE_DIR}/external)
|
|
set(SDL2_DIR ${DarkRP2D_EXTERNAL_DIR}/SDL2-2.0.8)
|
|
set(GLEW_DIR ${DarkRP2D_EXTERNAL_DIR}/glew-2.1.0)
|
|
set(SDL2_Image_DIR ${DarkRP2D_EXTERNAL_DIR}/SDL2_image-2.0.3)
|
|
set(FREETYPE_DIR ${DarkRP2D_EXTERNAL_DIR}/freetype-2.9)
|
|
set(GLM_DIR ${DarkRP2D_EXTERNAL_DIR}/glm-0.9.9-a2)
|
|
set(BOX2D_DIR ${DarkRP2D_EXTERNAL_DIR}/Box2D-2.3.1)
|
|
set(IMGUI_DIR ${DarkRP2D_EXTERNAL_DIR}/imgui-1.60)
|
|
set(ENTITYX_DIR ${DarkRP2D_EXTERNAL_DIR}/entityx-1.1.2)
|
|
|
|
#Libs
|
|
find_package(SDL2 REQUIRED CONFIG)
|
|
include_directories(${SDL2_INCLUDE_DIRS})
|
|
|
|
find_package(SDL2_Image REQUIRED CONFIG)
|
|
include_directories(${SDL2_IMAGE_INCLUDE_DIRS})
|
|
|
|
find_package(GLEW REQUIRED CONFIG)
|
|
include_directories(${GLEW_INCLUDE_DIRS})
|
|
|
|
find_package(FREETYPE REQUIRED CONFIG)
|
|
include_directories(${FREETYPE_INCLUDE_DIRS})
|
|
|
|
find_package(GLM REQUIRED CONFIG)
|
|
include_directories(${GLM_INCLUDE_DIRS})
|
|
|
|
find_package(OPENGL REQUIRED)
|
|
|
|
find_package(BOX2D REQUIRED CONFIG)
|
|
include_directories(${BOX2D_INCLUDE_DIRS})
|
|
|
|
find_package(ENTITYX REQUIRED CONFIG)
|
|
include_directories(${ENTITYX_INCLUDE_DIRS})
|
|
|
|
MESSAGE( STATUS "Entityx Lib: " ${ENTITYX_LIBRARIES} )
|
|
MESSAGE( STATUS "OpenGL Lib: " ${OPENGL_gl_LIBRARY} )
|
|
MESSAGE( STATUS "SDL2 Lib: " ${SDL2_LIBRARIES} )
|
|
MESSAGE( STATUS "SDL2_IMG Lib: " ${SDL2_IMAGE_LIBRARIES} )
|
|
MESSAGE( STATUS "Glew Lib: " ${GLEW_LIBRARIES} )
|
|
MESSAGE( STATUS "Freetype lib: " ${FREETYPE_LIBRARIES} )
|
|
MESSAGE( STATUS "Box2D lib: " ${BOX2D_LIBRARIES} )
|
|
|
|
file(GLOB_RECURSE DarkRP2D_SOURCE_FILES ${DarkRP2D_SOURCE_DIR}/src/*.cpp)
|
|
|
|
if (${CMAKE_BUILD_TYPE} MATCHES "DEBUG")
|
|
# Include imgui to build
|
|
file(GLOB IMGUI_SOURCE_FILES ${IMGUI_DIR}/*.cpp)
|
|
include_directories(${IMGUI_DIR}/include)
|
|
set(DarkRP2D_SOURCE_FILES ${DarkRP2D_SOURCE_FILES} ${IMGUI_SOURCE_FILES})
|
|
endif (${CMAKE_BUILD_TYPE} MATCHES "DEBUG")
|
|
|
|
add_executable(DarkRP2D ${DarkRP2D_SOURCE_FILES})
|
|
|
|
target_link_libraries(DarkRP2D ${SDL2_LIBRARIES}
|
|
${SDL2_IMAGE_LIBRARIES}
|
|
${GLEW_LIBRARIES}
|
|
${FREETYPE_LIBRARIES}
|
|
${OPENGL_gl_LIBRARY}
|
|
${BOX2D_LIBRARIES}
|
|
${ENTITYX_LIBRARIES})
|
|
|
|
add_custom_command(
|
|
TARGET ${PROJECT_NAME} POST_BUILD
|
|
COMMAND ${CMAKE_COMMAND} -E copy ${SDL2_DLL} ${CMAKE_CURRENT_BINARY_DIR}
|
|
COMMAND ${CMAKE_COMMAND} -E copy ${FREETYPE_DLL} ${CMAKE_CURRENT_BINARY_DIR}
|
|
COMMAND ${CMAKE_COMMAND} -E copy ${GLEW_DLL} ${CMAKE_CURRENT_BINARY_DIR}
|
|
COMMAND ${CMAKE_COMMAND} -E copy ${BOX2D_DLL} ${CMAKE_CURRENT_BINARY_DIR}
|
|
COMMAND ${CMAKE_COMMAND} -E copy ${ENTITYX_DLL} ${CMAKE_CURRENT_BINARY_DIR}
|
|
COMMAND ${CMAKE_COMMAND} -E copy ${SDL2_IMAGE_DLL} ${CMAKE_CURRENT_BINARY_DIR}
|
|
COMMAND ${CMAKE_COMMAND} -E copy ${SDL2_PNG_DLL} ${CMAKE_CURRENT_BINARY_DIR}
|
|
COMMAND ${CMAKE_COMMAND} -E copy ${SDL2_ZLIB_DLL} ${CMAKE_CURRENT_BINARY_DIR}
|
|
COMMENT "copys binaries from to ${CMAKE_CURRENT_BINARY_DIR}"
|
|
)
|
|
|
|
set (RESOURCE_DIR "${DarkRP2D_SOURCE_DIR}/resources")
|
|
add_custom_command(
|
|
TARGET ${PROJECT_NAME} POST_BUILD
|
|
COMMAND ${CMAKE_COMMAND} -E copy_directory ${RESOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}
|
|
COMMENT "copys resources from ${RESOURCE_DIR} => ${CMAKE_CURRENT_BINARY_DIR}"
|
|
) |