cmake_minimum_required(VERSION 2.8)
project(CloonelJump CXX)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wextra -pedantic -Wconversion")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -std=c++11 -Wall -Wextra -pedantic -Wconversion")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -std=c++11 -Wall -Wextra -pedantic -Wconversion")

include(FindPkgConfig)
PKG_SEARCH_MODULE(SDL2 REQUIRED sdl2)

find_package(PNG REQUIRED)
find_package(Boost 1.35.0 REQUIRED)

add_definitions(${PNG_DEFINITIONS})

include_directories(SYSTEM
	${SDL2_INCLUDE_DIR}
	${PNG_INCLUDE_DIRS}
	${Boost_INCLUDE_DIRS}
	lib/tree-2.81/src
)
include_directories(
	src
	src/movers
	include
	"${PROJECT_BINARY_DIR}"
	lib/physfs-2.0.3
)

configure_file(
	"${PROJECT_SOURCE_DIR}/src/${PROJECT_NAME}Config.h.in"
	"${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.h"
)

add_subdirectory(lib/physfs-2.0.3)

add_executable(${PROJECT_NAME}
	src/main.cpp
	src/texture.cpp
	src/sdlerror.cpp
	src/sdlmain.cpp
	src/gamebase.cpp
	src/character.cpp
	src/placeable.cpp
	src/physicsfswrapper.cpp
	src/gameplayscene.cpp
	src/movers/mover.cpp
	src/movers/moveroneshot.cpp
	src/movers/moversine.cpp
	src/gameplaysceneclassic.cpp
	src/movers/moverrelative.cpp
	src/inputbag.cpp
	src/movers/moverleftright.cpp
	src/tiledwallpaper.cpp
	src/drawable.cpp
	src/sizeratio.cpp
	src/sizenotifiable.cpp
	src/platform.cpp
	src/vectormath.cpp
	src/platformsystem.cpp
	src/movers/moverworld.cpp
	src/line.cpp
)

target_link_libraries(${PROJECT_NAME}
	${SDL2_LIBRARIES}
	physfs
	${PNG_LIBRARIES}
)
