Projucer should avoid overwriting certain build phase settings

I have a static library, created by the Projucer, that I use on a daily basis. I do not make significant changes to the library very often, but when I do, the Projucer causes me significant issues.

As I’m sure you’re aware, for a static library to be accessed by another project, some headers must be declared public. My library is quite large, and as a result I have 50+ public headers. And every time I save the library, the Projucer erases all record of which headers are supposed to be public. So, I have to manually fix this repeatedly. And this is made extra tedious because of the fact that I have to drag and drop each header individually. I cannot just select all of them in one go.

Please look into this issue. Honestly, there are many other settings that I wish the Projucer would leave alone, but this is the one that causes me the most dramas.

I would like to help you, I really enjoy solving issues related to build systems, but unfortunately I don’t understand what you are trying to achieve.

What you mean by “declaring the headers public”? When I create a static library, I usually put the public headers in a given folder on disk and that’s it.

Where do you have to drag and drop files? In Projucer or in your IDE (which one?) or in the file system explorer (on which platform?)?

In XCode, there is a page within project settings called “Build Phases” that specifies things that will be performed automatically during the build. Initially there is practically nothing there, but if you click on the menu: Editor\Add Build Phase\Add Copy Headers then it adds in a section where you can specify what headers should be copied to a public folder.

After it creates this section, I must drag and drop individual files into the “public” subheading to tell xcode that i want those files to be copied to a public folder.

The alternative is for me to manually organise my original source files or to manually copy them every time I build the static library. It is just so much easier to configure XCode to build things the way that I want them and then let it do its job.

1 Like