cmake_minimum_required(VERSION 3.20)
project(mojo_builder LANGUAGES C CXX)
if(MINGW)
  get_filename_component(_compiler_bin "${CMAKE_CXX_COMPILER}" DIRECTORY)
  get_filename_component(_compiler_root "${_compiler_bin}" DIRECTORY)
  add_compile_options("-ffile-prefix-map=${_compiler_root}=toolchain")
  add_compile_options("-ffile-prefix-map=${CMAKE_SOURCE_DIR}=." "-ffile-prefix-map=${CMAKE_BINARY_DIR}=build")
  if(DEFINED LIBCHDR_SOURCE)
    add_compile_options("-ffile-prefix-map=${LIBCHDR_SOURCE}=libchdr")
  endif()
  add_link_options(-s)
endif()
add_executable(MOJO src/launcher.cpp)
target_compile_features(MOJO PRIVATE cxx_std_20)
target_link_libraries(MOJO PRIVATE comdlg32)
if(MINGW)
  target_link_options(MOJO PRIVATE -static -municode)
endif()
if(DEFINED LIBCHDR_SOURCE)
  set(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE)
  add_subdirectory("${LIBCHDR_SOURCE}" libchdr EXCLUDE_FROM_ALL)
  add_executable(chd_to_iso src/chd_to_iso.c)
  target_include_directories(chd_to_iso PRIVATE "${LIBCHDR_SOURCE}/include")
  target_link_libraries(chd_to_iso PRIVATE chdr-static)
  if(MINGW)
    target_link_options(chd_to_iso PRIVATE -static -municode)
  endif()
endif()
