// Copyright Epic Games, Inc. All Rights Reserved.
using System.IO;
using UnrealBuildTool;
[SupportedPlatformGroups("Windows")]
public class WindowsPlatformFeatures : ModuleRules
{
public WindowsPlatformFeatures(ReadOnlyTargetRules Target) : base(Target)
{
// NOTE: General rule is not to access the private folder of another module,
// but to use the ISubmixBufferListener interface, we need to include some private headers
PrivateIncludePaths.Add(System.IO.Path.Combine(Directory.GetCurrentDirectory(), "./Runtime/AudioMixer/Private"));
PrivateDependencyModuleNames.AddRange(
new string[]
{
"ApplicationCore",
"Core",
"CoreUObject",
"Engine",
"AudioMixer",
"AVEncoder",
"GameplayMediaEncoder",
}
);
PublicDelayLoadDLLs.Add("mfplat.dll");
PublicDelayLoadDLLs.Add("mfuuid.dll");
PublicDelayLoadDLLs.Add("Mfreadwrite.dll");
}
}
이 코드는 `WindowsPlatformFeatures`라는 Unreal Engine 모듈에 대한 빌드 스크립트를 정의하고 있습니다. 역시 UnrealBuildTool을 사용하여 종속성과 컴파일 규칙을 정의하고 있습니다. 자세히 분석해 보겠습니다.
### 코드 구성 요소
1. **네임스페이스와 클래스 선언**
```csharp
using System.IO;
using UnrealBuildTool;
[SupportedPlatformGroups("Windows")]
public class WindowsPlatformFeatures : ModuleRules
{
public WindowsPlatformFeatures(ReadOnlyTargetRules Target) : base(Target)
{
```
- `System.IO`와 `UnrealBuildTool` 네임스페이스를 가져옵니다.
- `WindowsPlatformFeatures` 클래스는 `ModuleRules`를 상속받아 정의되며, 빌드 규칙을 설정합니다.
- `[SupportedPlatformGroups("Windows")]` 속성은 이 모듈이 Windows 플랫폼 그룹을 지원함을 나타냅니다.
- 생성자는 `ReadOnlyTargetRules Target`을 매개변수로 받아 빌드 규칙을 설정합니다.
2. **프라이빗 포함 경로 설정**
```csharp
// NOTE: General rule is not to access the private folder of another module,
// but to use the ISubmixBufferListener interface, we need to include some private headers
PrivateIncludePaths.Add(Systehttp://m.IO.Path.Combine(Directory.GetCurrentDirectory(), "./Runtime/AudioMixer/Private"));
```
- 일반적으로 다른 모듈의 프라이빗 폴더에 접근해서는 안 되지만, `ISubmixBufferListener` 인터페이스 사용을 위해 특정 프라이빗 헤더를 포함합니다.
- `PrivateIncludePaths`에 `./Runtime/AudioMixer/Private` 경로를 추가합니다. 여기서 `Systehttp://m.IO.Path.Combine`을 이용해 경로를 결합합니다.
3. **프라이빗 종속 모듈 설정**
```csharp
PrivateDependencyModuleNames.AddRange(
new string[]
{
"ApplicationCore",
"Core",
"CoreUObject",
"Engine",
"AudioMixer",
"AVEncoder",
"GameplayMediaEncoder",
}
);
```
- `PrivateDependencyModuleNames` 배열에 여러 모듈들을 추가합니다. 이들 모듈들은 'WindowsPlatformFeatures' 모듈이 필요로 하는 필수적인 종속 모듈들입니다.
- 여기에는 "ApplicationCore", "Core", "CoreUObject", "Engine", "AudioMixer", "AVEncoder", "GameplayMediaEncoder" 모듈들이 포함됩니다.
4. **DLL 지연 로드 설정**
```csharp
PublicDelayLoadDLLs.Add("mfplat.dll");
PublicDelayLoadDLLs.Add("mfuuid.dll");
PublicDelayLoadDLLs.Add("Mfreadwrite.dll");
```
- `PublicDelayLoadDLLs`는 모듈이 지연 로드는 DLL 파일들을 지정합니다.
- `mfplat.dll`, `mfuuid.dll`, `Mfreadwrite.dll` 등 멀티미디어 관련 DLL 파일들이 추가되고, 이는 DLL이 필요할 때 로드됨을 의미합니다.
### 종합 분석
- **프라이빗 포함 경로:** 다른 모듈의 프라이빗 헤더를 포함하기 위한 예외적인 경로 설정이 주요 특징입니다.
- **프라이빗 종속 모듈:** 여러 핵심 모듈에 대한 필수 종속성이 정의되어 있으며, 이 모듈이 Windows 플랫폼 기능을 다루는 데 있어서 중요한 역할을 할 수 있음을 나타냅니다.
- **DLL 지연 로드:** 특정 DLL 파일들이 필요할 때 로드될 수 있도록 설정되어 있으며, 이는 대부분 멀티미디어 처리와 관련되어 있습니다.
이 스크립트는 Windows 플랫폼에서 작동하는 `WindowsPlatformFeatures` 모듈의 빌드 규칙을 잘 정의하고 있으며, 높은 의존성을 가진 모듈들과 함께 동작하도록 설정되어 있습니다.
node.js source works properly in iOS
var util = require("util"),
my_http = require("http");
my_http.createServer(function(request,response){
console.log("connected")
response.writeHeader(200, {"Content-Type": "text/plain"});
response.write("Hello World");
response.end();
}).listen(3000);
console.log("Server Running on 3000");
Info.Plist 에서 http 허용
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
'3D world > Unreal Engine Plug-ins' 카테고리의 다른 글
NDI (0) | 2019.09.12 |
---|---|
unreal + rider (0) | 2019.03.13 |
D3D11RHI (0) | 2019.03.13 |
AudioMixerXAudio2 (0) | 2019.01.22 |
메신저 서비스를 할 때 고려해야 할 점. (0) | 2019.01.07 |
최근댓글