openframeworks / openframeworks/projectGenerator

[Feature] Add compiler flags per files on Xcode Project with addon_config.mk.

Open
#285 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
CSS
Stars
90
Forks
79
Avg merge
2d 9h
Merged PRs (30d)
5

Description

I can't show a better way how to specify flags to file.

But I found where is compiler flags in project.xcodeproj.

const char PBXBuildFile[] =
STRINGIFY(
          <key>BUILDUUID</key>
          <dict>
              <key>fileRef</key>
              <string>FILEUUID</string>
              <key>isa</key>
              <string>PBXBuildFile</string>
+              <key>settings</key>
+              <dict>
+                  <key>COMPILER_FLAGS</key>
+                  <string>__COMPILER_FLAGS__</string>
+              </dict>
          </dict>
);

idea of how to specify flags:

variable: ADDON_COMPILERFLAGS_PER_FILE
values: SOURCE_FILE COMPILER_FLAG

e.g.

ADDON_COMPILERFLAGS_PER_FILE = src/foo.m -fno-objc-arc
ADDON_COMPILERFLAGS_PER_FILE += src/foo.m -DHOGE
ADDON_COMPILERFLAGS_PER_FILE += src/bar.m -fobjc-arc

those give generic feature.


but, (maybe) mainly we want to use for adding -fno-objc-arc or -fobjc-arc.
so, other way is like

ADDON_NO_OBJC_ARC = SOURCE_FILE
ADDON_OBJC_ARC = SOURCE_FILE

Probably this is easy to implement than generic way.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with addon_config.mk and the PBXBuildFile section of the generated project.xcodeproj format described in the issue. Resolve whether the feature should support generic per-file compiler flags, ARC-specific variables, or both, then trace the generator entry point that reads addon_config.mk. Done means the selected configuration produces the expected per-file COMPILER_FLAGS entries.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, objective-c
Domain
build-system
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.