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);
 |