cmake_minimum_required(VERSION 3.0)

function(LinkLibrary name path)
    unset(DBG_LIBRARY CACHE)
    find_library(DBG_LIBRARY
        NAMES ${name}d
        HINTS ${path}
    )
    unset(REL_LIBRARY CACHE)
    find_library(REL_LIBRARY
        NAMES ${name}
        HINTS ${path}
    )
    message("LinkLibrary(${name}, ${path}): D=${DBG_LIBRARY}, R=${REL_LIBRARY}")
    target_link_libraries(SampleApp debug ${DBG_LIBRARY} optimized ${REL_LIBRARY})
endfunction(LinkLibrary)

file(GLOB sample_SOURCES
    "sample/src/*.c*" "sample/src/*.h*"
)

add_executable(SampleApp
	${sample_SOURCES}
    ${sample_HEADERS}
)

# Native libs
LinkLibrary(libplayercore "${CMAKE_SOURCE_DIR}/playercore/lib")
LinkLibrary(libplatforms "${CMAKE_SOURCE_DIR}/playercore/lib")

# Vendor Libs
LinkLibrary(json11 "${CMAKE_SOURCE_DIR}/vendor/lib")
LinkLibrary(caption "${CMAKE_SOURCE_DIR}/vendor/lib")

# Sony system libs
target_link_libraries(SampleApp 
    ScePm4Dump 
    ScePad_stub_weak
	SceAppContent_stub_weak
    SceAudiodec_stub_weak
    SceAudioOut_stub_weak
    SceHttp_stub_weak
    SceNet_stub_weak
    ScePosix_stub_weak
    SceSsl_stub_weak
    SceSysmodule_stub_weak
    SceVideodec2_stub_weak
)

LinkLibrary(libtoolkit "${CMAKE_SOURCE_DIR}/sample/vendor/lib")
LinkLibrary(libframework "${CMAKE_SOURCE_DIR}/sample/vendor/lib")
LinkLibrary(libSceDbgFont "${CMAKE_SOURCE_DIR}/sample/vendor/lib")
LinkLibrary(libSceSampleUtil "${CMAKE_SOURCE_DIR}/sample/vendor/lib")

target_include_directories(SampleApp
  PUBLIC
    sample/vendor/include
	vendor/include/optionparser
    sample/vendor/sampleutil/include
	playercore/include
    ${CMAKE_CURRENT_SOURCE_DIR}
  PRIVATE
    vendor/ps4samples   # used to include framework/sample_framework.h
)
add_compile_options(-fexceptions) 
