cmake_minimum_required(VERSION 3.15)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_BUILD_TYPE DEBUG)
message([status] ${CMAKE_CXX_COMPILER_ID})

include(cmake/ucm.cmake)
include(3rdparty/lp.cmake)
#include(cmake/FindSFML.cmake)

project(Hog2 VERSION 1.0)
SET(TMP_SIZE "5" CACHE STRING "Size")
message("TMP_SIZE: ${TMP_SIZE}")
add_definitions(-DPUZZLE_SIZE=${TMP_SIZE})
#include_directories(${CMAKE_SOURCE_DIR}/my_lib)

#set(SFML_STATIC_LIBRARIES TRUE)
#list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}")

#find_package(SFML COMPONENTS graphics window system REQUIRED)

#ucm_add_linker_flags("-framework GLUT" "-framework OpenGL" "-framework Cocoa")

ucm_add_dirs(abstraction abstractionalgorithms algorithms dynamic environments envutil generic graph graphalgorithms search utils TO HOG_FILES RECURSIVE)
ucm_remove_files(abstraction/AbstractionSearchEnvironment.cpp algorithms/SearchEnvironment.cpp search/SearchEnvironment.h environments/WeightedMap2DEnvironment.cpp environments/PancakePuzzle.cpp generic/RandomUnit.cpp generic/GraphCheck.cpp utils/Perceptron.cpp /HumanUnit.cpp shared/PatrolUnit.cpp shared/PRAStarUnit.cpp shared/RewardUnit.cpp absmapalgorithms/AbsMapUnit.cpp gui/SFML_HOG.cpp shared/SearchUnit.cpp shared/SharedAMapGroup.cpp FROM HOG_FILES)
ucm_remove_directories(gui/MAC gui/web FROM HOG_FILES)
add_library(HogCore STATIC ${HOG_FILES})

target_include_directories(HogCore PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/absmapalgorithms ${CMAKE_CURRENT_SOURCE_DIR}/abstraction ${CMAKE_CURRENT_SOURCE_DIR}/abstractionalgorithms ${CMAKE_CURRENT_SOURCE_DIR}/algorithms ${CMAKE_CURRENT_SOURCE_DIR}/dynamic ${CMAKE_CURRENT_SOURCE_DIR}/environments ${CMAKE_CURRENT_SOURCE_DIR}/envutil ${CMAKE_CURRENT_SOURCE_DIR}/generic ${CMAKE_CURRENT_SOURCE_DIR}/graph ${CMAKE_CURRENT_SOURCE_DIR}/graphalgorithms ${CMAKE_CURRENT_SOURCE_DIR}/grids ${CMAKE_CURRENT_SOURCE_DIR}/gui ${CMAKE_CURRENT_SOURCE_DIR}/learning ${CMAKE_CURRENT_SOURCE_DIR}/mapalgorithms ${CMAKE_CURRENT_SOURCE_DIR}/maps ${CMAKE_CURRENT_SOURCE_DIR}/shared ${CMAKE_CURRENT_SOURCE_DIR}/search ${CMAKE_CURRENT_SOURCE_DIR}/simulation ${CMAKE_CURRENT_SOURCE_DIR}/utils)

ucm_add_dirs(apps/test TO HOG_MAIN RECURSIVE)

add_executable(Hog2 ${HOG_MAIN})

find_package(Threads REQUIRED)

target_link_libraries(Hog2 HogCore Threads::Threads downward)

# learning maps shared
