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}" )