Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Passing compiler flags through xcodebuild

I'm currently using xcodebuild to automate testing for iOS.

Right now, I'm stuck on trying to pass compiler flags through Xcode directly to the compiler. These flags are: -fprofile-arcs -ftest-coverage.

I don't have the liberty of modifying the xcodeproj, that's why I want to inject these flags via the xcodebuild command.

It would be something like:

xcodebuild -project path/to/my.xcodeproj -scheme MyApp -fprofile-arcs -ftest-coverage

Is that feasible? How?

like image 775
aspyct Avatar asked Aug 07 '13 14:08

aspyct


2 Answers

Apparently most compiler flags can be expressed as constants, and these can be passed to the compiler via xcodebuild easily.

To get them, simply select the option in the xcode build settings view, and hit command-C (copy). In my case, they were GCC_GENERATE_TEST_COVERAGE_FILES and GCC_INSTRUMENT_PROGRAM_FLOW_ARCS.

My command roughly looks like this:

xcodebuild GCC_GENERATE_TEST_COVERAGE_FILES=YES GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=YES ...
like image 133
aspyct Avatar answered Nov 12 '22 21:11

aspyct


To set compiler flags with xcodebuild, you need to put them in the OTHERCFLAGS option.

For example:

xcodebuild -project path/to/my.xcodeproj -scheme MyApp \
    OTHERCFLAGS="-fprofile-arcs -ftest-coverage"
like image 5
Jason Moore Avatar answered Nov 12 '22 19:11

Jason Moore