cmake_minimum_required(VERSION 3.14...3.20)

project(3mfmerge)

# The generator expression $<0:> at the end, is only there to prevent multi-config generators such
# as MSVC's nmake from adding 'Debug' and the like
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin$<0:>)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin$<0:>)

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

include(FetchContent)
set(FETCHCONTENT_QUIET FALSE)

FetchContent_Declare(
  lib3mf
  URL https://github.com/3MFConsortium/lib3mf/archive/refs/tags/v2.1.1.tar.gz
  URL_HASH SHA256=314d2b3754de3c5519dcd57c8d7bcf450103ee91891a5a840343a03961accd89
)
FetchContent_MakeAvailable(lib3mf)

add_executable(${PROJECT_NAME} 3mfmerge.cpp)
target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_11)
target_include_directories(${PROJECT_NAME} PRIVATE ${lib3mf_BINARY_DIR}/Autogenerated/Bindings/Cpp)
target_link_directories(${PROJECT_NAME} BEFORE PRIVATE ${lib3mf_BINARY_DIR})
target_link_libraries(${PROJECT_NAME} PRIVATE lib3mf)
