From df175a5231515a2d5ab04ed5e5eaedb4a7df31d1 Mon Sep 17 00:00:00 2001 From: Diego Alfarache Date: Mon, 12 Aug 2019 23:42:03 -0500 Subject: [PATCH 1/7] Add rule support for Yasm and GasPP to allow building on Xcode 10 --- xcode.inc | 45 +++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 41 insertions(+), 4 deletions(-) diff --git a/xcode.inc b/xcode.inc index 96b25bd..37d068f 100644 --- a/xcode.inc +++ b/xcode.inc @@ -377,6 +377,34 @@ FOR EACH WORKSPACE ENDIF ENDFOR PRINTNL /* End PBXGroup section */ + PRINTNL + PRINTNL /* Begin PBXBuildRule section */ +IFDEF TARGET_IPHONE + PRINTNL F192372A2301CF0E004F37E9 /* PBXBuildRule */ = { + PRINTNL isa = PBXBuildRule; + PRINTNL compilerSpec = com.apple.compilers.proxy.script; + PRINTNL filePatterns = "*.S"; + PRINTNL fileType = pattern.proxy; + PRINTNL isEditable = 1; + PRINTNL outputFiles = ( + PRINTNL "${OBJECT_FILE_DIR_normal}/${CURRENT_ARCH}/${INPUT_FILE_BASE}.o", + PRINTNL ); + PRINTNL script = "ARRAY=(${USER_HEADER_SEARCH_PATHS})\n\ninclude_paths=\"\"\nfor i in \"${ARRAY[@]}\"\ndo\ninclude_paths=$include_paths\"-I\"$i\" \"\ndone\n\ncd ${SOURCE_ROOT}\n#export PATH=\"/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin\"\n\narchType=\"armv7\"\nif [[ ${INPUT_FILE_PATH} =~ \"64.S\" ]]\nthen\narchType='arm64'\nfi\n\n/usr/local/coremake/bin/gas-preprocessor.pl -x assembler-with-cpp ${INPUT_FILE_PATH} -arch $archType $include_paths -c -o ${SCRIPT_OUTPUT_FILE_0}\n"; + PRINTNL }; + ELSE + PRINTNL F192372A2301CF0E004F37E9 /* PBXBuildRule */ = { + PRINTNL isa = PBXBuildRule; + PRINTNL compilerSpec = com.apple.compilers.proxy.script; + PRINTNL fileType = sourcecode.asm.asm; + PRINTNL isEditable = 1; + PRINTNL outputFiles = ( + PRINTNL "${OBJECT_FILE_DIR_normal}/${CURRENT_ARCH}/${INPUT_FILE_BASE}.o", + PRINTNL ); + PRINTNL script = "ARRAY=(${USER_HEADER_SEARCH_PATHS})\n\ninclude_paths=\"\"\nfor i in \"${ARRAY[@]}\"\ndo\ninclude_paths=$include_paths\"-I\"$i\" \"\ndone\n\n/usr/local/bin/yasm ${INPUT_FILE_PATH} -fmacho64 $include_paths -D_HIDDEN -D_MACHO -DPIC -DARCH_X86_64 -o ${SCRIPT_OUTPUT_FILE_0}\n"; + + PRINTNL }; + ENDIF + PRINTNL /* End PBXBuildRule section */ PRINTNL IFNDEF USE_MAKEFILE PRINTNL /* Begin PBXNativeTarget section */ @@ -400,6 +428,9 @@ FOR EACH WORKSPACE ENDIF PRINTNL ); PRINTNL buildRules = ( + IF (%(TYPE)==DLL || %(TYPE)==LIB) + PRINTNL F192372A2301CF0E004F37E9 /* PBXBuildRule */, + ENDIF PRINTNL ); PRINTNL dependencies = ( FOR EACH USE @@ -628,13 +659,16 @@ FOR EACH WORKSPACE IFDEF TARGET_IPHONE PRINTNL GCC_THUMB_SUPPORT = NO; IF %(IOSDEPLOYMENTTARGET)!="" - PRINTNL IPHONEOS_DEPLOYMENT_TARGET = %(IOSDEPLOYMENTTARGET); + PRINTNL IPHONEOS_DEPLOYMENT_TARGET = %(IOSDEPLOYMENTTARGET); ENDIF - PRINTNL MACOSX_DEPLOYMENT_TARGET = ""; IF (%(TYPE)==EXE) PRINTNL "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; PRINTNL IPHONE_OPTIMIZE_OPTIONS = "-skip-PNGs"; ENDIF + ELSE + IF %(MACDEPLOYMENTTARGET)!="" + PRINTNL MACOSX_DEPLOYMENT_TARGET = %(MACDEPLOYMENTTARGET); + ENDIF ENDIF IF %(ASMFLAGS)!="" PRINTNL YASM_OTHER_FLAGS = "%(ASMFLAGS)"; @@ -719,13 +753,16 @@ FOR EACH WORKSPACE IFDEF TARGET_IPHONE PRINTNL GCC_THUMB_SUPPORT = NO; IF %(IOSDEPLOYMENTTARGET)!="" - PRINTNL IPHONEOS_DEPLOYMENT_TARGET = %(IOSDEPLOYMENTTARGET); + PRINTNL IPHONEOS_DEPLOYMENT_TARGET = %(IOSDEPLOYMENTTARGET); ENDIF - PRINTNL MACOSX_DEPLOYMENT_TARGET = ""; IF (%(TYPE)==EXE) PRINTNL "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; PRINTNL IPHONE_OPTIMIZE_OPTIONS = "-skip-PNGs"; ENDIF + ELSE + IF %(MACDEPLOYMENTTARGET)!="" + PRINTNL MACOSX_DEPLOYMENT_TARGET = %(MACDEPLOYMENTTARGET); + ENDIF ENDIF IF %(DEFINE) || %(DEFINE_DEBUG) PRINTNL GCC_PREPROCESSOR_DEFINITIONS = ( From 8bd160d4bf5398945eba4c4110e9e5393011b86c Mon Sep 17 00:00:00 2001 From: Diego Alfarache Date: Mon, 12 Aug 2019 23:43:24 -0500 Subject: [PATCH 2/7] add deployment target --- xcode_macosx.build | 1 + 1 file changed, 1 insertion(+) diff --git a/xcode_macosx.build b/xcode_macosx.build index 58379f6..7035b25 100644 --- a/xcode_macosx.build +++ b/xcode_macosx.build @@ -6,5 +6,6 @@ FRAMEWORK_PATH = / GCC_VERSION = com.apple.compilers.llvm.clang.1_0 XCODECOMPATVERSION = 3.2 ARCHS = "$(ARCHS_STANDARD)" +MACDEPLOYMENTTARGET = 10.10 #include "xcode.inc" From be2b28b85053ca052363529a2d906663df9b2e5d Mon Sep 17 00:00:00 2001 From: Diego Alfarache Date: Mon, 12 Aug 2019 23:43:55 -0500 Subject: [PATCH 3/7] increate IOS Deployment Target to 8.0 --- xcode_ios.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xcode_ios.build b/xcode_ios.build index 0cce3c8..9389b29 100644 --- a/xcode_ios.build +++ b/xcode_ios.build @@ -6,7 +6,7 @@ #define TARGET_ALWAYS_STATIC SDK = iphoneos -IOSDEPLOYMENTTARGET = 6.0 +IOSDEPLOYMENTTARGET = 8.0 GCC_VERSION = com.apple.compilers.llvm.clang.1_0 XCODECOMPATVERSION = 3.2 DEVICEFAMILY = 1 From 77f7e3363fde48f76d43e0ef0fd173172bd61623 Mon Sep 17 00:00:00 2001 From: Diego Alfarache Date: Mon, 12 Aug 2019 23:53:01 -0500 Subject: [PATCH 4/7] Add support for arm64e --- xcode_ios.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xcode_ios.build b/xcode_ios.build index 9389b29..f9657ca 100644 --- a/xcode_ios.build +++ b/xcode_ios.build @@ -10,6 +10,6 @@ IOSDEPLOYMENTTARGET = 8.0 GCC_VERSION = com.apple.compilers.llvm.clang.1_0 XCODECOMPATVERSION = 3.2 DEVICEFAMILY = 1 -ARCHS = "$(ARCHS_STANDARD)" +ARCHS = "$(ARCHS_STANDARD) arm64e" #include "xcode.inc" From 424d70c81613b46efd38f4dacf03b39d637f6c36 Mon Sep 17 00:00:00 2001 From: Diego Alfarache Date: Fri, 16 Aug 2019 14:43:51 -0500 Subject: [PATCH 5/7] add .asm build rule for iphone simulators --- xcode.inc | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/xcode.inc b/xcode.inc index 37d068f..a3a33c4 100644 --- a/xcode.inc +++ b/xcode.inc @@ -380,7 +380,7 @@ FOR EACH WORKSPACE PRINTNL PRINTNL /* Begin PBXBuildRule section */ IFDEF TARGET_IPHONE - PRINTNL F192372A2301CF0E004F37E9 /* PBXBuildRule */ = { + PRINTNL F1B8878A22FE0D360002351B /* PBXBuildRule */ = { PRINTNL isa = PBXBuildRule; PRINTNL compilerSpec = com.apple.compilers.proxy.script; PRINTNL filePatterns = "*.S"; @@ -391,6 +391,18 @@ IFDEF TARGET_IPHONE PRINTNL ); PRINTNL script = "ARRAY=(${USER_HEADER_SEARCH_PATHS})\n\ninclude_paths=\"\"\nfor i in \"${ARRAY[@]}\"\ndo\ninclude_paths=$include_paths\"-I\"$i\" \"\ndone\n\ncd ${SOURCE_ROOT}\n#export PATH=\"/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin\"\n\narchType=\"armv7\"\nif [[ ${INPUT_FILE_PATH} =~ \"64.S\" ]]\nthen\narchType='arm64'\nfi\n\n/usr/local/coremake/bin/gas-preprocessor.pl -x assembler-with-cpp ${INPUT_FILE_PATH} -arch $archType $include_paths -c -o ${SCRIPT_OUTPUT_FILE_0}\n"; PRINTNL }; + PRINTNL F192372A2301CF0E004F37E9 /* PBXBuildRule */ = { + PRINTNL isa = PBXBuildRule; + PRINTNL compilerSpec = com.apple.compilers.proxy.script; + PRINTNL fileType = sourcecode.asm.asm; + PRINTNL isEditable = 1; + PRINTNL outputFiles = ( + PRINTNL "${OBJECT_FILE_DIR_normal}/${CURRENT_ARCH}/${INPUT_FILE_BASE}.o", + PRINTNL ); + PRINTNL script = "ARRAY=(${USER_HEADER_SEARCH_PATHS})\n\ninclude_paths=\"\"\nfor i in \"${ARRAY[@]}\"\ndo\ninclude_paths=$include_paths\"-I\"$i\" \"\ndone\n\n/usr/local/bin/yasm ${INPUT_FILE_PATH} -fmacho64 $include_paths -D_HIDDEN -D_MACHO -DPIC -DARCH_X86_64 -o ${SCRIPT_OUTPUT_FILE_0}\n"; + + PRINTNL }; + ELSE PRINTNL F192372A2301CF0E004F37E9 /* PBXBuildRule */ = { PRINTNL isa = PBXBuildRule; @@ -429,7 +441,12 @@ IFDEF TARGET_IPHONE PRINTNL ); PRINTNL buildRules = ( IF (%(TYPE)==DLL || %(TYPE)==LIB) + IFDEF TARGET_IPHONE PRINTNL F192372A2301CF0E004F37E9 /* PBXBuildRule */, + PRINTNL F1B8878A22FE0D360002351B /* PBXBuildRule */, + ELSE + PRINTNL F192372A2301CF0E004F37E9 /* PBXBuildRule */, + ENDIF ENDIF PRINTNL ); PRINTNL dependencies = ( From c83b79808897d24152bc5a9420baaf0025b76ce0 Mon Sep 17 00:00:00 2001 From: Diego Alfarache Date: Fri, 16 Aug 2019 14:44:29 -0500 Subject: [PATCH 6/7] set minimum iOS version to 8.0 --- xcode_ios_simu.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xcode_ios_simu.build b/xcode_ios_simu.build index 3f55ab0..7694f06 100644 --- a/xcode_ios_simu.build +++ b/xcode_ios_simu.build @@ -6,7 +6,7 @@ #define TARGET_ALWAYS_STATIC SDK = iphonesimulator -IOSDEPLOYMENTTARGET = 6.0 +IOSDEPLOYMENTTARGET = 8.0 GCC_VERSION = com.apple.compilers.llvm.clang.1_0 XCODECOMPATVERSION = 3.2 ARCHS = "$(ARCHS_STANDARD)" From d37c5d511345420fa68254e1e40390147904edb1 Mon Sep 17 00:00:00 2001 From: Diego Alfarache Date: Thu, 22 Aug 2019 12:31:04 -0500 Subject: [PATCH 7/7] pass arm64 or arm64e based on $CURRENT_ARCH --- xcode.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xcode.inc b/xcode.inc index a3a33c4..0389de3 100644 --- a/xcode.inc +++ b/xcode.inc @@ -389,7 +389,7 @@ IFDEF TARGET_IPHONE PRINTNL outputFiles = ( PRINTNL "${OBJECT_FILE_DIR_normal}/${CURRENT_ARCH}/${INPUT_FILE_BASE}.o", PRINTNL ); - PRINTNL script = "ARRAY=(${USER_HEADER_SEARCH_PATHS})\n\ninclude_paths=\"\"\nfor i in \"${ARRAY[@]}\"\ndo\ninclude_paths=$include_paths\"-I\"$i\" \"\ndone\n\ncd ${SOURCE_ROOT}\n#export PATH=\"/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin\"\n\narchType=\"armv7\"\nif [[ ${INPUT_FILE_PATH} =~ \"64.S\" ]]\nthen\narchType='arm64'\nfi\n\n/usr/local/coremake/bin/gas-preprocessor.pl -x assembler-with-cpp ${INPUT_FILE_PATH} -arch $archType $include_paths -c -o ${SCRIPT_OUTPUT_FILE_0}\n"; + PRINTNL script = "ARRAY=(${USER_HEADER_SEARCH_PATHS})\n\ninclude_paths=\"\"\nfor i in \"${ARRAY[@]}\"\ndo\ninclude_paths=$include_paths\"-I\"$i\" \"\ndone\n\ncd ${SOURCE_ROOT}\n#export PATH=\"/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin\"\n\narchType=\"armv7\"\nif [[ ${INPUT_FILE_PATH} =~ \"64.S\" ]]\nthen\n archType='arm64'\n if [[ ${CURRENT_ARCH} =~ \"arm64e\" ]]\n then\n archType='arm64e'\n fi\nfi\n\n/usr/local/coremake/bin/gas-preprocessor.pl -x assembler-with-cpp ${INPUT_FILE_PATH} -arch $archType $include_paths -c -o ${SCRIPT_OUTPUT_FILE_0}\n"; PRINTNL }; PRINTNL F192372A2301CF0E004F37E9 /* PBXBuildRule */ = { PRINTNL isa = PBXBuildRule;