155 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			155 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								let project = new Project('Kha');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const pcreVersion = '10.42';
							 | 
						||
| 
								 | 
							
								const tlsVersion = '2.28.2';
							 | 
						||
| 
								 | 
							
								const zlibVersion = '1.2.13';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								project.addFiles('khacpp/src/**.h', 'khacpp/src/**.cpp', 'khacpp/include/**.h');
							 | 
						||
| 
								 | 
							
								project.addFiles('khacpp/project/libs/common/**.h', 'khacpp/project/libs/common/**.cpp');
							 | 
						||
| 
								 | 
							
								if (platform === Platform.Windows || platform === Platform.WindowsApp) project.addFiles('khacpp/project/libs/msvccompat/**.cpp');
							 | 
						||
| 
								 | 
							
								if (platform === Platform.Linux) project.addFiles('khacpp/project/libs/linuxcompat/**.cpp');
							 | 
						||
| 
								 | 
							
								project.addFiles('khacpp/project/libs/regexp/**.h', 'khacpp/project/libs/regexp/**.cpp', 'khacpp/project/libs/std/**.h', 'khacpp/project/libs/std/**.cpp');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								project.addFiles('khacpp/project/thirdparty/pcre2-' + pcreVersion + '-8/src/**.h', 'khacpp/project/thirdparty/pcre2-' + pcreVersion + '-8/src/**.c');
							 | 
						||
| 
								 | 
							
								project.addFiles('khacpp/project/thirdparty/pcre2-' + pcreVersion + '-16/src/**.h', 'khacpp/project/thirdparty/pcre2-' + pcreVersion + '-16/src/**.c');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const zlibFiles = [
							 | 
						||
| 
								 | 
							
									'**.h',
							 | 
						||
| 
								 | 
							
									'adler32.c',
							 | 
						||
| 
								 | 
							
									'compress.c',
							 | 
						||
| 
								 | 
							
									'crc32.c',
							 | 
						||
| 
								 | 
							
									'gzio.c',
							 | 
						||
| 
								 | 
							
									'uncompr.c',
							 | 
						||
| 
								 | 
							
									'deflate.c',
							 | 
						||
| 
								 | 
							
									'trees.c',
							 | 
						||
| 
								 | 
							
									'zutil.c',
							 | 
						||
| 
								 | 
							
									'inflate.c',
							 | 
						||
| 
								 | 
							
									'infback.c',
							 | 
						||
| 
								 | 
							
									'inftrees.c',
							 | 
						||
| 
								 | 
							
									'inffast.c'
							 | 
						||
| 
								 | 
							
								];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								for (const file of zlibFiles) {
							 | 
						||
| 
								 | 
							
									project.addFile('khacpp/project/thirdparty/zlib-' + zlibVersion + '/' + file);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								project.addFiles('khacpp/project/thirdparty/mbedtls-' + tlsVersion + '/**');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								project.addFiles('*.cpp', '*.c', 'Backends/Kore/*.h', '*.natvis');
							 | 
						||
| 
								 | 
							
								project.addFiles('lib/**');
							 | 
						||
| 
								 | 
							
								project.addIncludeDir('lib');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const pcreExcludes = [
							 | 
						||
| 
								 | 
							
									'pcre2_dftables.c',
							 | 
						||
| 
								 | 
							
									'pcre2_fuzzsupport.c',
							 | 
						||
| 
								 | 
							
									'pcre2_printint.c',
							 | 
						||
| 
								 | 
							
									'pcre2_jit_match.c',
							 | 
						||
| 
								 | 
							
									'pcre2_jit_misc.c',
							 | 
						||
| 
								 | 
							
									'pcre2_jit_test.c',
							 | 
						||
| 
								 | 
							
									'pcre2_ucptables.c',
							 | 
						||
| 
								 | 
							
									'pcre2demo.c',
							 | 
						||
| 
								 | 
							
									'pcre2grep.c',
							 | 
						||
| 
								 | 
							
									'pcre2posix.h',
							 | 
						||
| 
								 | 
							
									'pcre2posix.c',
							 | 
						||
| 
								 | 
							
									'pcre2posix_test.c',
							 | 
						||
| 
								 | 
							
									'pcre2test.c',
							 | 
						||
| 
								 | 
							
									'sljit/**'
							 | 
						||
| 
								 | 
							
								];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								for (const file of pcreExcludes) {
							 | 
						||
| 
								 | 
							
									project.addExclude('khacpp/project/thirdparty/pcre2-' + pcreVersion + '-8/src/' + file);
							 | 
						||
| 
								 | 
							
									project.addExclude('khacpp/project/thirdparty/pcre2-' + pcreVersion + '-16/src/' + file);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								project.addExcludes('khacpp/src/ExampleMain.cpp', 'khacpp/src/hx/Scriptable.cpp', 'khacpp/src/hx/NoFiles.cpp', 'khacpp/src/hx/cppia/**');
							 | 
						||
| 
								 | 
							
								project.addExcludes('khacpp/src/hx/Debugger.cpp', 'khacpp/src/hx/Profiler.cpp', 'khacpp/src/hx/Telemetry.cpp');
							 | 
						||
| 
								 | 
							
								project.addExcludes('khacpp/src/hx/NekoAPI.cpp');
							 | 
						||
| 
								 | 
							
								project.addExcludes('khacpp/src/hx/libs/sqlite/**');
							 | 
						||
| 
								 | 
							
								project.addExcludes('khacpp/src/hx/libs/mysql/**');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								project.addIncludeDirs('khacpp/include', 'khacpp/project/thirdparty/zlib-' + zlibVersion, 'khacpp/project/libs/nekoapi', 'khacpp/project/thirdparty/mbedtls-' + tlsVersion + '/include');
							 | 
						||
| 
								 | 
							
								project.addIncludeDir('khacpp/src/hx/libs/ssl');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//if (options.vrApi == "rift") {
							 | 
						||
| 
								 | 
							
								//	out += "project.addIncludeDirs('C:/khaviar/LibOVRKernel/Src/');\n";
							 | 
						||
| 
								 | 
							
								//	out += "project.addIncludeDirs('C:/khaviar/LibOVR/Include/');\n";
							 | 
						||
| 
								 | 
							
								//}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if (platform !== Platform.Android) {
							 | 
						||
| 
								 | 
							
									project.addExcludes('khacpp/src/hx/AndroidCompat.cpp');
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if (platform === Platform.Windows) {
							 | 
						||
| 
								 | 
							
									project.addDefine('HX_WINDOWS');
							 | 
						||
| 
								 | 
							
									project.addLib('Shlwapi');
							 | 
						||
| 
								 | 
							
									project.addLib('Crypt32');
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								if (platform === Platform.WindowsApp) {
							 | 
						||
| 
								 | 
							
									project.addDefine('HX_WINDOWS');
							 | 
						||
| 
								 | 
							
									project.addDefine('HX_WINRT');
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								if (platform !== Platform.Windows || audio !== AudioApi.DirectSound) {
							 | 
						||
| 
								 | 
							
									project.addDefine('KORE_MULTITHREADED_AUDIO');
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								if (platform === Platform.OSX) {
							 | 
						||
| 
								 | 
							
									project.addDefine('HXCPP_M64');
							 | 
						||
| 
								 | 
							
									project.addDefine('HX_MACOS');
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								if (platform === Platform.Linux) project.addDefine('HX_LINUX');
							 | 
						||
| 
								 | 
							
								if (platform === Platform.iOS) {
							 | 
						||
| 
								 | 
							
									project.addDefine('IPHONE');
							 | 
						||
| 
								 | 
							
									project.addDefine('HX_IPHONE');
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								if (platform === Platform.tvOS) {
							 | 
						||
| 
								 | 
							
									project.addDefine('APPLETV');
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								if (platform === Platform.Android) {
							 | 
						||
| 
								 | 
							
									project.addDefine('ANDROID');
							 | 
						||
| 
								 | 
							
									project.addDefine('_ANDROID');
							 | 
						||
| 
								 | 
							
									project.addDefine('HX_ANDROID');
							 | 
						||
| 
								 | 
							
									project.addDefine('HXCPP_ANDROID_PLATFORM=24');
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								if (platform === Platform.OSX) {
							 | 
						||
| 
								 | 
							
									project.addDefine('KORE_DEBUGDIR="osx"');
							 | 
						||
| 
								 | 
							
									project.addLib('Security');
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								if (platform === Platform.iOS) project.addDefine('KORE_DEBUGDIR="ios"');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// project:addDefine('HXCPP_SCRIPTABLE');
							 | 
						||
| 
								 | 
							
								project.addDefine('STATIC_LINK');
							 | 
						||
| 
								 | 
							
								project.addDefine('PCRE2_STATIC');
							 | 
						||
| 
								 | 
							
								project.addDefine('HXCPP_VISIT_ALLOCS');
							 | 
						||
| 
								 | 
							
								project.addDefine('KHA');
							 | 
						||
| 
								 | 
							
								project.addDefine('KORE');
							 | 
						||
| 
								 | 
							
								project.addDefine('ROTATE90');
							 | 
						||
| 
								 | 
							
								project.addDefine('HAVE_CONFIG_H');
							 | 
						||
| 
								 | 
							
								project.addDefine('SUPPORT_UTF');
							 | 
						||
| 
								 | 
							
								project.addDefine('SUPPORT_UCP');
							 | 
						||
| 
								 | 
							
								project.addDefine('SUPPORT_UNICODE');
							 | 
						||
| 
								 | 
							
								project.addDefine('MBEDTLS_USER_CONFIG_FILE="mbedtls_config.h"');
							 | 
						||
| 
								 | 
							
								project.addDefine('HX_SMART_STRINGS');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//if (Options.vrApi === "gearvr") {
							 | 
						||
| 
								 | 
							
								//	out += "project.addDefine('VR_GEAR_VR');\n";
							 | 
						||
| 
								 | 
							
								//}
							 | 
						||
| 
								 | 
							
								//else if (Options.vrApi === "cardboard") {
							 | 
						||
| 
								 | 
							
								//	out += "project.addDefine('VR_CARDBOARD');\n";
							 | 
						||
| 
								 | 
							
								//}
							 | 
						||
| 
								 | 
							
								//else if (Options.vrApi === "rift") {
							 | 
						||
| 
								 | 
							
								//	out += "project.addDefine('VR_RIFT');\n";
							 | 
						||
| 
								 | 
							
								//}
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//if (options.vrApi == "rift") {
							 | 
						||
| 
								 | 
							
								//	out += "project.addLib('C:/khaviar/LibOVRKernel/Lib/Windows/Win32/Release/VS2013/LibOVRKernel');\n";
							 | 
						||
| 
								 | 
							
								//	out += "project.addLib('C:/khaviar/LibOVR/Lib/Windows/Win32/Release/VS2013/LibOVR');\n";
							 | 
						||
| 
								 | 
							
								//}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if (platform === Platform.Windows || platform === Platform.WindowsApp) {
							 | 
						||
| 
								 | 
							
									project.addDefine('_WINSOCK_DEPRECATED_NO_WARNINGS');
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								if (platform === Platform.Windows) {
							 | 
						||
| 
								 | 
							
									project.addLib('ws2_32');
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								resolve(project);
							 |