cmake_minimum_required(VERSION 3.13)

# Add FetchContent functionality
include(FetchContent)

project(P1SdkProject)

# SDK Major version
set(SDK_MAJOR_VERSION "3")

# System name (lower case)
string(TOLOWER ${CMAKE_SYSTEM_NAME} SYSTEM_NAME_LC)

# File format extension
if(WIN32)
set(SDK_PACKAGE_EXT ".zip")
else()
set(SDK_PACKAGE_EXT ".tgz")
endif()

# Account for ARM based linux systems
if(NOT APPLE AND UNIX AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
set(LINUX_ARCH "-arm64")
else()
set(LINUX_ARCH "")
endif()

# Setup CameraSDK Download
FetchContent_Declare(CameraSDK
    URL "https://developer.phaseone.com/sdk/releases/camerasdk/${SDK_MAJOR_VERSION}/p1camerasdk-${SYSTEM_NAME_LC}${LINUX_ARCH}${SDK_PACKAGE_EXT}"
    SOURCE_DIR CameraSDK
)
# Download CameraSDK for the current system
message(STATUS "Downloading CameraSDK...")
FetchContent_Populate(CameraSDK)
find_package(CameraSDK CONFIG REQUIRED HINTS ${CMAKE_CURRENT_BINARY_DIR}/CameraSDK)

## Add sample executable

add_executable(hello_world main.cpp)
set_target_properties(hello_world PROPERTIES CXX_STANDARD 17)

## Link static with SDKs

target_link_libraries(hello_world PRIVATE
    CameraSDK::CameraSdkCppStatic
)
