cmake_minimum_required(VERSION 3.16)
project(HaikuPandora CXX)
set(CMAKE_CXX_STANDARD 17)

# Haiku-specific settings
if(HAIKU)
    # Be/Haiku API libraries
    set(HAIKU_LIBS be media translation network)
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_HAIKU -pthread")
endif()

find_package(OpenSSL REQUIRED)

# Source files
set(SOURCES
    src/PandoraApp.cpp
    src/PandoraAPI.cpp
    src/MainWindow.cpp
)

# Headers
include_directories(
    src
    ${OPENSSL_INCLUDE_DIR}
)

add_executable(HaikuPandora ${SOURCES})

target_link_libraries(HaikuPandora
    ${HAIKU_LIBS}
    ${OPENSSL_LIBRARIES}
    pthread
)

if(HAIKU)
    # Set Haiku app signature
    set_target_properties(HaikuPandora PROPERTIES
        LINK_FLAGS "-Xlinker --allow-multiple-definition"
    )
    add_custom_command(TARGET HaikuPandora POST_BUILD
        COMMAND mimeset -f $<TARGET_FILE:HaikuPandora>
        COMMENT "Setting MIME type for Haiku application"
    )
endif()

# Install
install(TARGETS HaikuPandora RUNTIME DESTINATION /boot/apps/HaikuPandora)
install(FILES resources/HaikuPandora.rdef DESTINATION /boot/apps/HaikuPandora)
