cmake_minimum_required(VERSION 3.16)
project(chocorecomp CXX)
if(WIN32)
  enable_language(RC)
endif()
set(CMAKE_CXX_STANDARD 17)
if(NOT CMAKE_BUILD_TYPE)
  set(CMAKE_BUILD_TYPE RelWithDebInfo)
endif()
file(GLOB GEN_SRC gen/*.cpp)
file(GLOB RT_SRC runtime/*.cpp)
add_executable(lostinshadow ${RT_SRC} ${GEN_SRC})
target_include_directories(lostinshadow PRIVATE runtime gen)
if(WIN32)
  # SDL2 development package (SDL2-devel-*-mingw) location
  set(SDL2_DIR "" CACHE PATH "SDL2 mingw dev package root (x86_64-w64-mingw32 subfolder)")
  target_include_directories(lostinshadow PRIVATE runtime/gl ${SDL2_DIR}/include)
  target_compile_definitions(lostinshadow PRIVATE SDL_MAIN_HANDLED)
  target_compile_options(lostinshadow PRIVATE -O2 -fno-strict-aliasing -w -g0)
  target_link_directories(lostinshadow PRIVATE ${SDL2_DIR}/lib)
  target_sources(lostinshadow PRIVATE runtime/app.rc)
  target_link_libraries(lostinshadow PRIVATE SDL2 winmm -static-libgcc -static-libstdc++ -Wl,-Bstatic -lwinpthread -Wl,-Bdynamic)
elseif(USE_SDL)
  target_compile_definitions(lostinshadow PRIVATE USE_SDL)
  target_compile_options(lostinshadow PRIVATE -O2 -fno-strict-aliasing -w -g0)
  target_link_libraries(lostinshadow PRIVATE SDL2 GL pthread)
else()
  target_compile_options(lostinshadow PRIVATE -O2 -fno-strict-aliasing -w -g0)
  target_link_libraries(lostinshadow PRIVATE EGL GL pthread)
endif()
