
add_library(rpcsx_fw_ps3_api INTERFACE)

target_include_directories(rpcsx_fw_ps3_api INTERFACE include)

add_library(rpcsx_fw_ps3 OBJECT
    cellAdec.cpp
    cellAtrac.cpp
    cellAtracMulti.cpp
    cellAtracXdec.cpp
    cellAudio.cpp
    cellAudioOut.cpp
    cellAuthDialog.cpp
    cellAvconfExt.cpp
    cellBgdl.cpp
    cellCamera.cpp
    cellCelp8Enc.cpp
    cellCelpEnc.cpp
    cellCrossController.cpp
    cellDaisy.cpp
    cellDmux.cpp
    cellDmuxPamf.cpp
    cellDtcpIpUtility.cpp
    cellFiber.cpp
    cellFont.cpp
    cellFontFT.cpp
    cell_FreeType2.cpp
    cellFs.cpp
    cellGame.cpp
    cellGameExec.cpp
    cellGcmSys.cpp
    cellGem.cpp
    cellGifDec.cpp
    cellHttp.cpp
    cellHttpUtil.cpp
    cellImeJp.cpp
    cellJpgDec.cpp
    cellJpgEnc.cpp
    cellKb.cpp
    cellKey2char.cpp
    cellL10n.cpp
    cellLibprof.cpp
    cellMic.cpp
    cellMouse.cpp
    cellMsgDialog.cpp
    cellMusic.cpp
    cellMusicDecode.cpp
    cellMusicSelectionContext.cpp
    cellMusicExport.cpp
    cellNetAoi.cpp
    cellNetCtl.cpp
    cellOskDialog.cpp
    cellOvis.cpp
    cellPad.cpp
    cellPamf.cpp
    cellPesmUtility.cpp
    cellPhotoDecode.cpp
    cellPhotoExport.cpp
    cellPhotoImport.cpp
    cellPngDec.cpp
    cellPngEnc.cpp
    cellPrint.cpp
    cellRec.cpp
    cellRemotePlay.cpp
    cellResc.cpp
    cellRtcAlarm.cpp
    cellRtc.cpp
    cellRudp.cpp
    cellSail.cpp
    cellSailRec.cpp
    cellSaveData.cpp
    cellScreenshot.cpp
    cellSearch.cpp
    cellSheap.cpp
    cellSpudll.cpp
    cellSpurs.cpp
    cellSpursJq.cpp
    cellSpursSpu.cpp
    cellSsl.cpp
    cellStorage.cpp
    cellSubDisplay.cpp
    cellSync2.cpp
    cellSync.cpp
    cellSysconf.cpp
    cellSysCache.cpp
    cellSysmodule.cpp
    cellSysutilAp.cpp
    cellSysutilAvc2.cpp
    cellSysutilAvc.cpp
    cellSysutilAvcExt.cpp
    cellSysutil.cpp
    cellSysutilMisc.cpp
    cellSysutilNpEula.cpp
    cellUsbd.cpp
    cellUsbpspcm.cpp
    cellUserInfo.cpp
    cellVdec.cpp
    cellVideoExport.cpp
    cellVideoOut.cpp
    cellVideoPlayerUtility.cpp
    cellVideoUpload.cpp
    cellVoice.cpp
    cellVpost.cpp
    cellWebBrowser.cpp
    HLE_PATCHES.cpp
    libad_async.cpp
    libad_core.cpp
    libmedi.cpp
    libmixer.cpp
    libsnd3.cpp
    libsynth2.cpp
    sceNp2.cpp
    sceNpClans.cpp
    sceNpCommerce2.cpp
    sceNp.cpp
    sceNpMatchingInt.cpp
    sceNpPlus.cpp
    sceNpSns.cpp
    sceNpTrophy.cpp
    sceNpTus.cpp
    sceNpUtil.cpp
    StaticHLE.cpp
    sys_crashdump.cpp
    sys_game_.cpp
    sys_heap.cpp
    sys_io_.cpp
    sys_libc_.cpp
    sys_libc.cpp
    sys_lv2dbg.cpp
    sys_lwcond_.cpp
    sys_lwmutex_.cpp
    sys_mempool.cpp
    sys_mmapper_.cpp
    sys_net_.cpp
    sys_ppu_thread_.cpp
    sys_prx_.cpp
    sysPrxForUser.cpp
    sys_rsxaudio_.cpp
    sys_spinlock.cpp
    sys_spu_.cpp
    libfs_utility_init.cpp
)

target_link_libraries(rpcsx_fw_ps3 PUBLIC rpcs3 rpcsx_fw_ps3_api 3rdparty::stblib)
target_compile_definitions(rpcsx_fw_ps3 PRIVATE WIN32_LEAN_AND_MEAN NOMINMAX)
target_include_directories(rpcsx_fw_ps3 PRIVATE include/rpcsx/fw/ps3)

add_library(rpcsx::fw::ps3 ALIAS rpcsx_fw_ps3)
add_library(rpcsx::fw::ps3::api ALIAS rpcsx_fw_ps3_api)
