aboutsummaryrefslogtreecommitdiff
path: root/lib/libUPnP/CMakeLists.txt
blob: 5aa41aa6499d85a2b1fc949c6c793e9dc337f925 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
set(SOURCES Platinum/Source/Core/PltAction.cpp
            Platinum/Source/Core/PltArgument.cpp
            Platinum/Source/Core/PltConstants.cpp
            Platinum/Source/Core/PltCtrlPoint.cpp
            Platinum/Source/Core/PltCtrlPointTask.cpp
            Platinum/Source/Core/PltDatagramStream.cpp
            Platinum/Source/Core/PltDeviceData.cpp
            Platinum/Source/Core/PltDeviceHost.cpp
            Platinum/Source/Core/PltEvent.cpp
            Platinum/Source/Core/PltHttp.cpp
            Platinum/Source/Core/PltHttpClientTask.cpp
            Platinum/Source/Core/PltHttpServer.cpp
            Platinum/Source/Core/PltHttpServerTask.cpp
            Platinum/Source/Core/PltIconsData.cpp
            Platinum/Source/Core/PltMimeType.cpp
            Platinum/Source/Core/PltProtocolInfo.cpp
            Platinum/Source/Core/PltService.cpp
            Platinum/Source/Core/PltSsdp.cpp
            Platinum/Source/Core/PltStateVariable.cpp
            Platinum/Source/Core/PltTaskManager.cpp
            Platinum/Source/Core/PltThreadTask.cpp
            Platinum/Source/Core/PltUPnP.cpp
            Platinum/Source/Devices/MediaServer/PltDidl.cpp
            Platinum/Source/Devices/MediaServer/PltFileMediaServer.cpp
            Platinum/Source/Devices/MediaServer/PltMediaBrowser.cpp
            Platinum/Source/Devices/MediaServer/PltMediaCache.cpp
            Platinum/Source/Devices/MediaServer/PltMediaItem.cpp
            Platinum/Source/Devices/MediaServer/PltMediaServer.cpp
            Platinum/Source/Devices/MediaServer/ConnectionManagerSCPD.cpp
            Platinum/Source/Devices/MediaServer/ContentDirectorySCPD.cpp
            Platinum/Source/Devices/MediaServer/ContentDirectorywSearchSCPD.cpp
            Platinum/Source/Devices/MediaServer/PltSyncMediaBrowser.cpp
            Neptune/Source/Core/Neptune.cpp
            Neptune/Source/Core/NptAutomaticCleaner.cpp
            Neptune/Source/Core/NptBase64.cpp
            Neptune/Source/Core/NptBufferedStreams.cpp
            Neptune/Source/Core/NptCommon.cpp
            Neptune/Source/Core/NptDataBuffer.cpp
            Neptune/Source/Core/NptDebug.cpp
            Neptune/Source/Core/NptFile.cpp
            Neptune/Source/Core/NptHash.cpp
            Neptune/Source/Core/NptHttp.cpp
            Neptune/Source/Core/NptList.cpp
            Neptune/Source/Core/NptLogging.cpp
            Neptune/Source/Core/NptMessaging.cpp
            Neptune/Source/Core/NptNetwork.cpp
            Neptune/Source/Core/NptQueue.cpp
            Neptune/Source/Core/NptResults.cpp
            Neptune/Source/Core/NptRingBuffer.cpp
            Neptune/Source/Core/NptSimpleMessageQueue.cpp
            Neptune/Source/Core/NptSockets.cpp
            Neptune/Source/Core/NptStreams.cpp
            Neptune/Source/Core/NptStrings.cpp
            Neptune/Source/Core/NptSystem.cpp
            Neptune/Source/Core/NptThreads.cpp
            Neptune/Source/Core/NptTime.cpp
            Neptune/Source/Core/NptTls.cpp
            Neptune/Source/Core/NptUri.cpp
            Neptune/Source/Core/NptUtils.cpp
            Neptune/Source/Core/NptXml.cpp
            Neptune/Source/System/Bsd/NptBsdResolver.cpp
            Neptune/Source/System/Bsd/NptBsdSockets.cpp
            Neptune/Source/System/StdC/NptStdcDebug.cpp
            Neptune/Source/System/StdC/NptStdcEnvironment.cpp
            Platinum/Source/Devices/MediaRenderer/PltMediaRenderer.cpp
            Platinum/Source/Devices/MediaRenderer/PltMediaController.cpp
            Platinum/Source/Devices/MediaRenderer/AVTransportSCPD.cpp
            Platinum/Source/Devices/MediaRenderer/RdrConnectionManagerSCPD.cpp
            Platinum/Source/Devices/MediaRenderer/RenderingControlSCPD.cpp
            Platinum/Source/Devices/MediaConnect/X_MS_MediaReceiverRegistrarSCPD.cpp
            Platinum/Source/Devices/MediaConnect/PltMediaConnect.cpp
            Neptune/Source/System/Posix/NptPosixEnvironment.cpp)

if(NOT CORE_SYSTEM_NAME STREQUAL windows AND NOT CORE_SYSTEM_NAME STREQUAL windowsstore)
  list(APPEND SOURCES Neptune/Source/System/Posix/NptPosixSystem.cpp
                      Neptune/Source/System/Posix/NptSelectableMessageQueue.cpp
                      Neptune/Source/System/Posix/NptPosixQueue.cpp
                      Neptune/Source/System/Posix/NptPosixThreads.cpp
                      Neptune/Source/System/Posix/NptPosixTime.cpp
                      Neptune/Source/System/Bsd/NptBsdNetwork.cpp)
  if(APPLE)
    list(APPEND SOURCES Neptune/Source/System/Apple/NptAppleAutoreleasePool.mm)
  else()
    list(APPEND SOURCES Neptune/Source/System/Null/NptNullAutoreleasePool.cpp)
  endif()
else()
  list(APPEND SOURCES Neptune/Source/System/Win32/NptWin32Console.cpp
                      Neptune/Source/System/Win32/NptWin32Debug.cpp
                      Neptune/Source/System/Win32/NptWin32DynamicLibraries.cpp
                      Neptune/Source/System/Win32/NptWin32MessageQueue.cpp
                      Neptune/Source/System/Win32/NptWin32Network.cpp
                      Neptune/Source/System/Win32/NptWin32Queue.cpp
                      Neptune/Source/System/Win32/NptWin32SerialPort.cpp
                      Neptune/Source/System/Win32/NptWin32System.cpp
                      Neptune/Source/System/Win32/NptWin32Threads.cpp
                      Neptune/Source/System/Win32/NptWin32Time.cpp)
endif()

if(CORE_SYSTEM_NAME STREQUAL "freebsd")
  list(APPEND SOURCES Neptune/Source/System/Bsd/NptBsdResolver.cpp
                      Neptune/Source/System/Bsd/NptBsdSockets.cpp)
endif()


add_library(upnp STATIC ${SOURCES} ${HEADERS})
target_compile_definitions(upnp PUBLIC -DNPT_CONFIG_ENABLE_LOGGING)
if(CORE_SYSTEM_NAME STREQUAL "freebsd")
  target_compile_definitions(upnp PUBLIC -DNPT_CONFIG_HAVE_GETADDRINFO)
endif()

target_include_directories(upnp PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
                                       Platinum/Source/Core
                                       Platinum/Source/Platinum
                                       Platinum/Source/Devices/MediaConnect
                                       Platinum/Source/Devices/MediaRenderer
                                       Platinum/Source/Devices/MediaServer
                                       Platinum/Source/Extras
                                       Neptune/Source/Core
                                       Neptune/Source/System/Posix)
if(CORE_SYSTEM_NAME STREQUAL windows OR CORE_SYSTEM_NAME STREQUAL windowsstore)
  target_include_directories(upnp PRIVATE Neptune/Source/System/Win32)
endif()
set_target_properties(upnp PROPERTIES FOLDER lib)
source_group_by_folder(upnp)
set(core_DEPENDS upnp ${core_DEPENDS} CACHE STRING "" FORCE)

if(CORE_SYSTEM_NAME STREQUAL windowsstore)
	set_target_properties(upnp PROPERTIES STATIC_LIBRARY_FLAGS "/ignore:4264")
endif()