set(SOURCE_LIST
	module_parent.cpp
	SceAppMgr/SceAppMgr.cpp
	SceAppMgr/SceSharedFb.cpp
	SceAppUtil/SceAppUtil.cpp
	SceAppUtil/SceAppUtilAddcontForce.cpp
	SceAppUtil/SceAppUtilBook.cpp
	SceAppUtil/SceAppUtilCache.cpp
	SceAppUtil/SceAppUtilExt.cpp
	SceAtrac/SceAtrac.cpp
	SceAudio/SceAudio.cpp
	SceAudiodec/SceAudiodecUser.cpp
	SceAudioenc/SceAudioencUser.cpp
	SceAudioIn/SceAudioIn.cpp
	SceAvcodec/SceAvcodec.cpp
	SceAvcodecUser/SceVideoencUser.cpp
	SceAVConfig/SceAVConfig.cpp
	SceAvPlayer/SceAvPlayer.cpp
	SceBbmc/SceBbmc.cpp
	SceBgAppUtil/SceBgAppUtil.cpp
	SceBt/SceBt.cpp
	SceCamera/SceCamera.cpp
	SceClipboard/SceClipboard.cpp
	SceCodecEngine/SceCodecEngineUser.cpp
	SceCodecEnginePerf/SceCodecEnginePerf.cpp
	SceCodecEngineWrapper/SceCodecEngineWrapper.cpp
	SceCommonDialog/SceCommonDialog.cpp
	SceCommonDialog/SceNpWebApiCommonDialog.cpp
	SceCompat/SceCompat.cpp
	SceCoredump/SceCoredump.cpp
	SceCoredump/SceCoredumpNounlink.cpp
	SceCtrl/SceCtrl.cpp
	SceDeci4pUserp/SceDeci4pUserp.cpp
	SceDisplay/SceDisplay.cpp
	SceDriverUser/SceAppMgrUser.cpp
	SceDriverUser/SceDisplayUser.cpp
	SceDriverUser/SceDrmBridgeUser.cpp
	SceDriverUser/SceErrorUser.cpp
	SceDriverUser/SceFios2User.cpp
	SceDriverUser/SceMotion.cpp
	SceDriverUser/SceRtcUser.cpp
	SceDTrace/SceDTrace.cpp
	SceError/SceError.cpp
	SceFace/SceFace.cpp
	SceFiber/SceFiber.cpp
	SceFios2/SceFios2.cpp
	SceFios2Kernel/SceFios2Kernel.cpp
	SceFios2Kernel/SceFios2Kernel02.cpp
	SceFios2Kernel/SceFios2KernelForDriver.cpp
	SceGameUpdate/SceGameUpdate.cpp
	SceGps/SceGps.cpp
	SceGpuEs4/SceGpuEs4ForUser.cpp
	SceGxm/SceGxm.cpp
	SceGxm/SceGxmInternal.cpp
	SceGxm/SceGxmInternalForGles.cpp
	SceGxm/SceGxmInternalForReplay.cpp
	SceGxm/SceGxmInternalForVsh.cpp
	SceHandwriting/SceHandwriting.cpp
	SceHid/SceHid.cpp
	SceHttp/SceHttp.cpp
	SceIme/SceIme.cpp
	SceIpmi/SceIpmi.cpp
	SceIncomingDialog/SceIncomingDialog.cpp
	SceIofilemgr/SceIofilemgr.cpp
	SceJpeg/SceJpegUser.cpp
	SceJpegArm/SceJpegArm.cpp
	SceJpegEnc/SceJpegEncUser.cpp
	SceJpegEncArm/SceJpegEncArm.cpp
	SceKernelDmacMgr/SceDmacmgr.cpp
	SceKernelModulemgr/SceBacktrace.cpp
	SceKernelModulemgr/SceModulemgr.cpp
	SceKernelModulemgr/SceModulemgrForDriver.cpp
	SceKernelThreadMgr/SceThreadmgr.cpp
	SceKernelThreadMgr/SceThreadmgrCoredumpTime.cpp
	SceKernelThreadMgr/SceThreadmgrForDriver.cpp
	SceKernelThreadMgr/SceThreadmgrForKernel.cpp
	kubridge/kubridge.cpp
	SceLibc/SceLibc.cpp
	SceLibc/SceLibm.cpp
	SceLibc/SceLibstdcxx.cpp
	SceLibDbg/SceDbg.cpp
	SceLibft2/SceFt2.cpp
	SceLibJson/SceLibJson.cpp
	SceLibKernel/SceKernelForMono.cpp
	SceLibKernel/SceKernelForVM.cpp
	SceLibKernel/SceLibGcc.cpp
	SceLibKernel/SceLibKernel.cpp
	SceLibKernel/SceLibRng.cpp
	SceLibKernel/SceLibSsp.cpp
	SceLibKernel/SceRtabi.cpp
	taiHEN/taiHEN.cpp
	SceLibMono/SceLibMono.cpp
	SceLibMonoBridge/SceLibMonoBridge.cpp
	SceLibMp4Recorder/SceLibMp4Recorder.cpp
	SceLibMtp/SceLibMtp.cpp
	SceLibXml/SceLibXml.cpp
	SceLiveArea/SceLiveAreaUtil.cpp
	SceLocation/SceLibLocation.cpp
	SceLocationExtension/SceLibLocationExtension.cpp
	SceLsdb/SceLsdb.cpp
	SceMotionDev/SceMotionDev.cpp
	SceMp4/SceMp4.cpp
	SceMtpIfDriver/SceMtpIf.cpp
	SceMusicExport/SceMusicExport.cpp
	SceNearDialogUtil/SceNearDialogUtil.cpp
	SceNearUtil/SceNearUtil.cpp
	SceNet/SceNet.cpp
	SceNetInternal/SceNetInternal.cpp
	SceNetAdhocMatching/SceNetAdhocMatching.cpp
	SceNetCtl/SceNetCtl.cpp
	SceNetPs/SceNetPsForSyscalls.cpp
	SceNgs/SceNgsInternal.cpp
	SceNgsUser/SceNgs.cpp
	SceNotificationUtil/SceNotificationUtil.cpp
	SceNotificationUtil/SceNotificationUtilBgApp.cpp
	SceNotificationUtil/SceNotificationUtilProgress.cpp
	SceNpActivity/SceNpActivity.cpp
	SceNpBasic/SceNpBasic.cpp
	SceNpCommerce2/SceNpCommerce2.cpp
	SceNpCommon/SceNpCommon.cpp
	SceNpDrm/SceNpDrm.cpp
	SceNpDrm/SceNpDrmPackage.cpp
	SceNpDrm/ScePsmDrm.cpp
	SceNpManager/SceNpManager.cpp
	SceNpMatching2/SceNpMatching2.cpp
	SceNpMessage/SceNpMessage.cpp
	SceNpParty/SceNpPartyGameUtil.cpp
	SceNpScore/SceNpScore.cpp
	SceNpSignaling/SceNpSignaling.cpp
	SceNpSnsFacebook/SceNpSnsFacebook.cpp
	SceNpTrophy/SceNpTrophy.cpp
	SceNpTus/SceNpTus.cpp
	SceNpUtility/SceNpUtility.cpp
	SceNpWebApi/SceNpWebApi.cpp
	ScePaf/ScePafMisc.cpp
	ScePaf/ScePafResource.cpp
	ScePaf/ScePafStdc.cpp
	ScePaf/ScePafWidget.cpp
	ScePamgr/ScePamgr.cpp
	ScePerf/ScePerf.cpp
	ScePgf/ScePgf.cpp
	ScePhotoExport/ScePhotoExport.cpp
	ScePower/ScePower.cpp
	ScePower/ScePowerForDriver.cpp
	SceProcessmgr/SceProcessmgr.cpp
	SceProcessmgr/SceProcessmgrForDriver.cpp
	ScePromoterUtil/ScePromoterUtil.cpp
	ScePspnetAdhoc/ScePspnetAdhoc.cpp
	ScePvf/ScePvf.cpp
	SceRazorCapture/SceRazorCapture.cpp
	SceRazorHud/SceRazorHud.cpp
	SceRegistryMgr/SceRegMgr.cpp
	SceRegistryMgr/SceRegMgrForGame.cpp
	SceRegistryMgr/SceRegMgrForSDK.cpp
	SceRegistryMgr/SceRegMgrService.cpp
	SceRtc/SceRtc.cpp
	SceRtc/SceRtcForDriver.cpp
	SceRudp/SceLibRudp.cpp
	SceSas/SceSas.cpp
	SceSblACMgr/SceSblACMgr.cpp
	SceSblGcAuthMgr/SceSblGcAuthMgr.cpp
	SceSblPostSsMgr/SceSblLicMgr.cpp
	SceSblPostSsMgr/SceSblPmMgr.cpp
	SceSblPostSsMgr/SceSblRtcMgr.cpp
	SceSblPostSsMgr/SceSblUtMgr.cpp
	SceSblSsMgr/SceSblAimgr.cpp
	SceSblSsMgr/SceSblDmac5Mgr.cpp
	SceSblSsMgr/SceSblQafMgr.cpp
	SceSblSsMgr/SceSblRng.cpp
	SceSblUpdateMgr/SceSblSsUpdateMgr.cpp
	SceScreenShot/SceScreenShot.cpp
	SceShaccCg/SceShaccCg.cpp
	SceShellSvc/SceShellSvc.cpp
	SceShellSvc/SceShellUtil.cpp
	SceShellSvc/SceShellUtilLaunchApp.cpp
	SceShutterSound/SceShutterSound.cpp
	SceSmart/SceSmart.cpp
	SceSqlite/SceSqlite.cpp
	SceSsl/SceSsl.cpp
	SceSsl/SceSslInternal.cpp
	SceStdio/SceStdio.cpp
	SceSulpha/SceSulpha.cpp
	SceSysmem/SceCpu.cpp
	SceSysmem/SceCpuForDriver.cpp
	SceSysmem/SceDebugForDriver.cpp
	SceSysmem/SceDebugForKernel.cpp
	SceSysmem/SceDebugLed.cpp
	SceSysmem/SceDipsw.cpp
	SceSysmem/SceDipswForDriver.cpp
	SceSysmem/SceProcEventForDriver.cpp
	SceSysmem/SceQafMgrForDriver.cpp
	SceSysmem/SceSysclibForDriver.cpp
	SceSysmem/SceSysmem.cpp
	SceSysmem/SceSysmemForDriver.cpp
	SceSysmodule/SceSysmodule.cpp
	SceSystemGesture/SceSystemGesture.cpp
	SceTeleportClient/SceTeleportClient.cpp
	SceTeleportServer/SceTeleportServer.cpp
	SceTouch/SceTouch.cpp
	SceTriggerUtil/SceTriggerUtil.cpp
	SceUdcd/SceUdcd.cpp
	SceUlobjDbg/SceUlobjDbg.cpp
	SceUlobjMgr/SceUlobjMgr.cpp
	SceUlt/SceUlt.cpp
	SceUsbd/SceUsbdForUser.cpp
	SceUsbPspcm/SceUsbPspcm.cpp
	SceUsbSerial/SceUsbSerial.cpp
	SceUsbServ/SceUsbServ.cpp
	SceUsbstorVStorDriver/SceUsbstorVStor.cpp
	SceVideodec/SceVideodecUser.cpp
	SceVideoExport/SceVideoExport.cpp
	SceVoice/SceVoice.cpp
	SceVoiceQoS/SceVoiceQoS.cpp
	SceVshBridge/SceDrmBridge.cpp
	SceVshBridge/SceVshBridge.cpp
	SceWlanBt/SceWlan.cpp
)

if(APPLE)
    list(APPEND SOURCE_LIST
        SceNet/macos_net_helper.h
        SceNet/macos_net_helper.cpp
    )
endif()

add_library(modules STATIC ${SOURCE_LIST})
target_include_directories(modules PUBLIC include)
target_include_directories(modules PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/taiHEN)
target_link_libraries(modules PRIVATE app audio camera codec ctrl dialog lang display dlmalloc gxm ime kernel mem motion net ngs np patch regmgr ssl packages printf renderer rtc SDL3::SDL3 substitute touch xxHash::xxhash)
target_link_libraries(modules PUBLIC module)
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${SOURCE_LIST})

if(APPLE)
    target_link_libraries(modules PUBLIC "-framework SystemConfiguration")
endif()
