add_library(libSceNpCommon SHARED EXCLUDE_FROM_ALL PendingExports.cpp PendingExportsRound7.cpp)
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/Export.cpp")
    target_sources(libSceNpCommon PRIVATE Export.cpp)
endif()
target_sources(libSceNpCommon PRIVATE Runtime.cpp Strings.cpp)
target_include_directories(libSceNpCommon PRIVATE ${LIBS_INCLUDE_DIR})
target_link_libraries(libSceNpCommon PRIVATE libc libkernel libSceRtc libSceUserService)
configure_windows_unwind(libSceNpCommon)

if(BUILD_TESTING)
    add_test_executable(guest_np_common_rtc_tests ${LIBS_INCLUDE_DIR}/tests/GuestNpCommonRtc.cpp)
    target_include_directories(guest_np_common_rtc_tests PRIVATE ${LIBS_INCLUDE_DIR})
    target_link_libraries(guest_np_common_rtc_tests PRIVATE libSceNpCommon libc)
    configure_windows_unwind(guest_np_common_rtc_tests)
    add_test(NAME guest_np_common_rtc COMMAND guest_np_common_rtc_tests)
    if(WIN32)
        set_tests_properties(guest_np_common_rtc PROPERTIES ENVIRONMENT_MODIFICATION
            "PATH=path_list_prepend:$<TARGET_FILE_DIR:libSceNpCommon>")
    endif()
endif()
