
add_library(epocservs
        include/services/allocator.h
        include/services/context.h
        include/services/faker.h
        include/services/framework.h
        include/services/host_launch.h
        include/services/init.h
        include/services/utils.h
        include/services/accessory/accessory.h
        include/services/accessory/common.h
        include/services/alarm/alarm.h
        include/services/applist/applist.h
        include/services/applist/icons.h
        include/services/applist/common.h
        include/services/applist/op.h
        include/services/audio/alf/alf.h
        include/services/audio/keysound/context.h
        include/services/audio/keysound/keysound.h
        include/services/audio/keysound/ops.h
        include/services/audio/keysound/ringtab.h
        include/services/audio/keysound/ringtab.h
        include/services/audio/mmf/audio.h
        include/services/audio/mmf/dev.h
        include/services/backup/backup.h
        include/services/bluetooth/protocols/btlink/btlink_inet.h
        include/services/bluetooth/protocols/l2cap/l2cap_inet.h
        include/services/bluetooth/protocols/rfcomm/rfcomm_inet.h
        include/services/bluetooth/protocols/sdp/pdu_builder.h
        include/services/bluetooth/protocols/sdp/sdp_inet.h
        include/services/bluetooth/protocols/asker_inet.h
        include/services/bluetooth/protocols/base_inet.h
        include/services/bluetooth/protocols/btmidman_inet.h
        include/services/bluetooth/protocols/common.h
        include/services/bluetooth/protocols/overall.h
        include/services/bluetooth/bt.h
        include/services/bluetooth/btman.h
        include/services/bluetooth/btmidman.h
        include/services/centralrepo/centralrepo.h
        include/services/centralrepo/common.h
        include/services/centralrepo/repo.h
        include/services/camera/camera.h
        include/services/comm/comm.h
        include/services/internet/protocols/common.h
        include/services/internet/protocols/inet.h
        include/services/internet/protocols/overall.h
        include/services/internet/browser.h
        include/services/internet/accesspoints.h
        include/services/internet/connmonitor.h
        include/services/internet/nifman.h
        include/services/domain/domain.h
        include/services/drm/notifier/events.h
        include/services/drm/notifier/notifier.h
        include/services/drm/rights/object.h
        include/services/drm/rights/db.h
        include/services/drm/rights/import.h
        include/services/drm/rights/rights.h
        include/services/drm/helper.h
        include/services/etel/common.h
        include/services/etel/etel.h
        include/services/etel/line.h
        include/services/etel/modmngr.h
        include/services/etel/phone.h
        include/services/etel/subsess.h
        include/services/fbs/adapter/font_adapter.h
        include/services/fbs/adapter/freetype_font_adapter.h
        include/services/fbs/adapter/gdr_font_adapter.h
        include/services/fbs/adapter/linked_font_adapter.h
        include/services/fbs/adapter/stb_font_adapter.h
        include/services/fbs/bitmap.h
        include/services/fbs/compress_queue.h
        include/services/fbs/fbs.h
        include/services/fbs/font.h
        include/services/fbs/font_atlas.h
        include/services/fbs/font_store.h
        include/services/fbs/linked_font_config.h
        include/services/fbs/palette.h
        include/services/featmgr/featmgr.h
        include/services/fs/sec.h
        include/services/fs/fs.h
        include/services/goommonitor/goommonitor.h
        include/services/hwrm/def.h
        include/services/hwrm/haptics/haptics.h
        include/services/hwrm/haptics/protocol.h
        include/services/hwrm/hwrm.h
        include/services/hwrm/op.h
        include/services/hwrm/light/light_data.h
        include/services/hwrm/light/light_def.h
        include/services/hwrm/power/power_def.h
        include/services/hwrm/power/power_data.h
        include/services/hwrm/vibration/vibration_def.h
        include/services/hwrm/vibration/vibration_data.h
        include/services/hwrm/vibration/vibration.h
        include/services/loader/loader.h
        include/services/loader/op.h
        include/services/msv/operations/base.h
        include/services/msv/operations/change.h
        include/services/msv/operations/create.h
        include/services/msv/operations/move.h
        include/services/msv/cache.h
        include/services/msv/common.h
        include/services/msv/entry.h
        include/services/msv/msv.h
        include/services/msv/store.h
        include/services/notifier/notifier.h
        include/services/notifier/bluetooth.h
        include/services/notifier/queries.h
        include/services/posix/op.h
        include/services/posix/posix.h
        include/services/redir/redir.h
        include/services/remcon/common.h
        include/services/remcon/controller.h
        include/services/remcon/remcon.h
        include/services/remcon/target.h
        include/services/sensor/sensor.h
        include/services/memorymanager/memorymanager.h
        include/services/lbs/lbs.h
        include/services/linnea/linnea.h
        include/services/shutdown/shutdown.h
        include/services/sisregistry/common.h
        include/services/sisregistry/sisregistry.h
        include/services/sms/protocols/common.h
        include/services/sms/protocols/datagram.h
        include/services/sms/protocols/overall.h
        include/services/sms/sa/sa.h
        include/services/sms/sendas/sendas.h
        include/services/socket/agent/genconn.h
        include/services/socket/common.h
        include/services/socket/connection.h
        include/services/socket/server.h
        include/services/socket/socket.h
        include/services/sysagt/sysagt.h
        include/services/timezone/timezone.h
        include/services/ui/cap/coestorage.h
        include/services/ui/cap/consts.h
        include/services/ui/cap/eiksrv.h
        include/services/ui/cap/oom_app.h
        include/services/ui/cap/sgc.h
        include/services/ui/icon/icon.h
        include/services/ui/plugins/keylocknof.h
        include/services/ui/plugins/notenof.h
        include/services/ui/skin/chunk_maintainer.h
        include/services/ui/skin/icon_cfg.h
        include/services/ui/skin/ops.h
        include/services/ui/skin/server.h
        include/services/ui/skin/settings.h
        include/services/ui/skin/skn.h
        include/services/ui/skin/bitmap_store.h
        include/services/ui/skin/utils.h
        include/services/ui/view/common.h
        include/services/ui/view/queue.h
        include/services/ui/view/view.h
        include/services/ui/appserver.h
        include/services/ui/eikappui.h
        include/services/uiss/uiss.h
        include/services/unipertar/unipertar.h
        include/services/window/classes/plugins/anim/clock/clock.h
        include/services/window/classes/plugins/anim/clock/factory.h
        include/services/window/classes/plugins/anim/clock/messagewin.h
        include/services/window/classes/plugins/anim/overall.h
        include/services/window/bitmap_cache.h
        include/services/window/keys.h
        include/services/window/scheduler.h
        include/services/window/screen.h
        include/services/window/util.h
        include/services/window/window.h
        src/allocator.cpp
        src/context.cpp
        src/faker.cpp
        src/framework.cpp
        src/host_launch.cpp
        src/init.cpp
        src/utils.cpp
        src/accessory/accessory.cpp
        src/accessory/common.cpp
        src/alarm/alarm.cpp
        src/applist/applist.cpp
        src/applist/icons.cpp
        src/applist/common.cpp
        src/applist/registeration.cpp
        src/audio/alf/alf.cpp
        src/audio/keysound/context.cpp
        src/audio/keysound/keysound.cpp
        src/audio/mmf/audio.cpp
        src/audio/mmf/dev.cpp
        src/backup/backup.cpp
        src/bluetooth/protocols/btlink/resolver_inet.cpp
        src/bluetooth/protocols/l2cap/socket_inet.cpp
        src/bluetooth/protocols/rfcomm/rfcomm_inet.cpp
        src/bluetooth/protocols/sdp/pdu_builder.cpp
        src/bluetooth/protocols/sdp/sdp_inet.cpp
        src/bluetooth/protocols/asker_inet.cpp
        src/bluetooth/protocols/base_inet.cpp
        src/bluetooth/protocols/btmidman_lan_matching.cpp
        src/bluetooth/protocols/btmidman_proxserv_matching.cpp
        src/bluetooth/protocols/btmidman_inet.cpp
        src/bluetooth/protocols/common.cpp
        src/bluetooth/protocols/overall.cpp
        src/bluetooth/bt.cpp
        src/bluetooth/btman.cpp
        src/bluetooth/btmidman.cpp
        src/centralrepo/centralrepo.cpp
        src/centralrepo/cre.cpp
        src/centralrepo/repo.cpp
        src/camera/camera.cpp
        src/comm/comm.cpp
        src/internet/protocols/overall.cpp
        src/internet/protocols/resolver.cpp
        src/internet/protocols/socket.cpp
        src/internet/browser.cpp
        src/internet/accesspoints.cpp
        src/internet/connmonitor.cpp
        src/internet/nifman.cpp
        src/domain/domain.cpp
        src/drm/notifier/events.cpp
        src/drm/notifier/exchange.cpp
        src/drm/notifier/notifier.cpp
        src/drm/rights/db.cpp
        src/drm/rights/import.cpp
        src/drm/rights/object.cpp
        src/drm/rights/rights.cpp
        src/drm/helper.cpp
        src/etel/etel.cpp
        src/etel/line.cpp
        src/etel/modmngr.cpp
        src/etel/phone.cpp
        src/etel/subsess.cpp
        src/fbs/adapter/font_adapter.cpp
        src/fbs/adapter/freetype_font_adapter.cpp
        src/fbs/adapter/gdr_font_adapter.cpp
        src/fbs/adapter/linked_font_adapter.cpp
        src/fbs/adapter/stb_font_adapter.cpp
        src/fbs/compress_queue.cpp
        src/fbs/fbs.cpp
        src/fbs/palette.cpp
        src/fbs/font_atlas.cpp
        src/fbs/impls/bitmap.cpp
        src/fbs/impls/font.cpp
        src/fbs/impls/font_store.cpp
        src/fbs/impls/linked_font_config.cpp
        src/featmgr/featmgr.cpp
        src/fs/dirs.cpp
        src/fs/drives.cpp
        src/fs/files.cpp
        src/fs/fs.cpp
        src/fs/parser.cpp
        src/fs/std.cpp
        src/goommonitor/goommonitor.cpp
        src/hwrm/haptics/protocol.cpp
        src/hwrm/haptics/haptics.cpp
        src/hwrm/hwrm.cpp
        src/hwrm/light/light_data.cpp
        src/hwrm/light/light.cpp
        src/hwrm/power/power_data.cpp
        src/hwrm/vibration/vibration_data.cpp
        src/hwrm/vibration/vibration.cpp
        src/loader/loader.cpp
        src/msv/operations/base.cpp
        src/msv/operations/change.cpp
        src/msv/operations/create.cpp
        src/msv/operations/move.cpp
        src/msv/cache.cpp
        src/msv/entry.cpp
        src/msv/msv.cpp
        src/msv/registry.cpp
        src/msv/store.cpp
        src/notifier/notifier.cpp
        src/notifier/bluetooth.cpp
        src/notifier/queries.cpp
        src/notifier/message_query.cpp
        src/posix/posix.cpp
        src/redir/redir.cpp
        src/remcon/common.cpp
        src/remcon/controller.cpp
        src/remcon/remcon.cpp
        src/remcon/target.cpp
        src/sensor/sensor.cpp
        src/memorymanager/memorymanager.cpp
        src/lbs/lbs.cpp
        src/linnea/linnea.cpp
        src/shutdown/shutdown.cpp
        src/sisregistry/sisregistry.cpp
        src/sms/mtm/factory.cpp
        src/sms/mtm/send.cpp
        src/sms/protocols/datagram.cpp
        src/sms/protocols/overall.cpp
        src/sms/sa/sa.cpp
        src/sms/sendas/sendas.cpp
        src/sms/common.cpp
        src/sms/settings.cpp
        src/socket/agent/genconn.cpp
        src/socket/connection.cpp
        src/socket/netdb.cpp
        src/socket/protocol.cpp
        src/socket/resolver.cpp
        src/socket/socket.cpp
        src/socket/server.cpp
        src/sysagt/sysagt.cpp
        src/timezone/timezone.cpp
        src/ui/cap/coestorage.cpp
        src/ui/cap/eiksrv.cpp
        src/ui/cap/oom_app.cpp
        src/ui/cap/sgc.cpp
        src/ui/icon/icon.cpp
        src/ui/icon/init.cpp
        src/ui/plugins/keylocknof.cpp
        src/ui/plugins/notenof.cpp
        src/ui/skin/chunk_maintainer.cpp
        src/ui/skin/icon_cfg.cpp
        src/ui/skin/ops.cpp
        src/ui/skin/server.cpp
        src/ui/skin/settings.cpp
        src/ui/skin/skn.cpp
        src/ui/skin/bitmap_store.cpp
        src/ui/skin/utils.cpp
        src/ui/view/queue.cpp
        src/ui/view/view.cpp
        src/ui/appserver.cpp
        src/ui/eikappui.cpp
        src/uiss/uiss.cpp
        src/unipertar/unipertar.cpp
        src/window/classes/plugins/anim/clock/clock.cpp
        src/window/classes/plugins/anim/clock/factory.cpp
        src/window/classes/plugins/anim/clock/messagewin.cpp
        src/window/classes/plugins/anim/overall.cpp
        src/window/classes/plugins/animdll.cpp
        src/window/classes/plugins/clickdll.cpp
        src/window/classes/plugins/graphics.cpp
        src/window/classes/plugins/sprite.cpp
        src/window/classes/bitmap.cpp
        src/window/classes/dsa.cpp
        src/window/classes/gctx.cpp
        src/window/classes/scrdvc.cpp
        src/window/classes/gstore.cpp
        src/window/classes/winbase.cpp
        src/window/classes/wingroup.cpp
        src/window/classes/winuser.cpp
        src/window/classes/wsobj.cpp
        src/window/bitmap_cache.cpp
        src/window/common.cpp
        src/window/fifo.cpp
        src/window/io.cpp
        src/window/scheduler.cpp
        src/window/screen.cpp
        src/window/surface.cpp
        src/window/util.cpp
        src/window/window.cpp)

target_include_directories(epocservs PUBLIC include)

target_include_directories(epocservs PUBLIC
        ${EPOC32_INCLUDE_DIR})

target_link_libraries(epocservs PUBLIC
        common
        epocdispatch
        epocio
        epocloader
        epocmem
        epocutils
        uv_a
        uvw
        uvlooper
        thread-pool)

target_link_libraries(epocservs PRIVATE
        config
        epoc
        epockern
        epocpkg
        freetype
        drivers
        lunasvg
        stb
        xxHash
        pugixml
        sqlite3
        re2::re2
        mbedcrypto)

if (WIN32)
        target_link_libraries(epocservs PRIVATE Ws2_32.lib)
endif()

if (APPLE)
        target_sources(epocservs PRIVATE src/bluetooth/protocols/mdns_dnssd.cpp)
else()
        target_sources(epocservs PRIVATE src/bluetooth/protocols/mdns_socket.cpp)
endif()
