Skip to content

swigger/wrapcc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

what is wrapcc

wrapcc is gcc like wraper for building cross host targets. It help make life easier to build something for IOS, Android, Openwrt, etc.

Usage

  • copy wrapcc to somewhere (like ~/bin) rename it to aarch64-apple-darwin-gcc .

  • Edit config file ~/bin/aarch64-apple-darwin-gcc.wrapcc.cfg to something like:

#!/bin/bash
CC=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
COMMON_FLAGS="-arch arm64 -miphoneos-version-min=8.0 -g"
COMMON_FLAGS+=" -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk"
COMMON_FLAGS+=" -F/Users/xungeng/work/ios_research/ios_frameworks"

CFLAGS="$COMMON_FLAGS -fmessage-length=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -fobjc-arc -gmodules
 -Wno-trigraphs -fpascal-strings -Wno-missing-field-initializers -Wno-missing-prototypes -Wno-implicit-atomic-properties
 -Wno-arc-repeated-use-of-weak -Wduplicate-method-match -Wno-missing-braces -Wparentheses -Wswitch -Wunused-function -Wno-unused-label
 -Wno-unused-parameter -Wunused-variable -Wunused-value -Wempty-body -Wuninitialized -Wno-unknown-pragmas -Wno-shadow
 -Wno-four-char-constants -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion
 -Wno-newline-eof -Wno-selector -Wno-strict-selector-match -Wundeclared-selector -Wno-deprecated-implementations -Wno-nullability-completeness
 -fstrict-aliasing -Wprotocol -Wdeprecated-declarations -fvisibility=hidden -Wno-sign-conversion"
CFLAGS+=" -I/Users/xungeng/work/ios_research/ios_inc"

CXXFLAGS="$CFLAGS -std=gnu++11 -stdlib=libc++
-Wc++11-extensions
-Wno-non-virtual-dtor
-Wno-overloaded-virtual
-Wno-exit-time-destructors
-Winvalid-offsetof
-fvisibility-inlines-hidden
"

LIBDIRS="-L/Users/xungeng/work/ios_research/ios_lib"

WRAPCC_LDFLAGS="$COMMON_FLAGS $LIBDIRS -dead_strip"
WRAPCC_CFLAGS="$CFLAGS -std=c99"
WRAPCC_CXXFLAGS=$CXXFLAGS
WRAPCC_CC=$CC

WRAPCC_DBG=0
WRAPCC_CFLAGS2= # -O0

WRAPCC_REMOVE="-Werror"

Note:

This is NOT a bash script but bash-like. The tag #!/bin/bash is just for making vim happy to make it easier to edit this config file.

  • try aarch64-apple-darwin-gcc for fun.

Ex: aarch64-apple-darwin-gcc -o main main.c and main.c has contents like:

#include <stdio.h>
int main()
{
	printf("hello\n");
	return 0;
}

About

cc wrapper for building for ios,android,openwrt,etc

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published