Hello,
I'm using cmake to generate an Xcode project which is supposed to build a
bundle. Thus, I use the source file property MACOSX_PACKAGE_LOCATION to place
my data (database, GUI, localization files, …) in the correct directory in my
bundle.
I used to have a general CMakeLists.txt with several commands like follows:
file(GLOB VAR_GUI
${RESOURCE_PATH}/GUI/*
)
set_source_files_properties(
${VAR_GUI}
PROPERTIES
MACOSX_PACKAGE_LOCATION Resources/GUI
)
Then one command to concatenate all the independent variables (used to separate
the different directories)
set(RESOURCES "${VAR_GUI};…")
Finally, in my main CMakeLists.txt i wrote :
add_executable(${CMAKE_PROJECT_NAME} MACOSX_BUNDLE ${SOURCES} ${HEADERS}
${RESOURCES})
So every data of my project was more or else added by hand. I wanted to
automated the process so i wrote a python script that does the job for me. The
script proceeds by writing a file in which each directory of my resource
directory has its own variable listing the files in it (semi-colon separated
element list). It also generate a set of 'source_group' command to organize
resources in the IDE.
The generated file is included in my main CMakeLists.txt using the 'include'
command.
The generated file use commands like follows:
set(RESOURCE_GUI
<path_to_file_1>;<path_to_file_2>;…
)
set_source_files_properties(
${RESOURCE_GUI}
PROPERTIES
MACOSX_PACKAGE_LOCATION Resources/GUI
)
Unfortunately, with this new generated included file, the resources are
successfully added to the Xcode project but when I build the project, the
resources are no longer copied into the bundle.
I checked that the include command wasn't the issue since my old commands (hand
written) works when i put them in the included file (in place of the generated
commands).
Trying to figure out the issue, I notice that in Xcode, the only difference
between resources added by my generated file and the old ones is that the old
commands were in the end marking my resources file as target member (target
membership is checked in Xcode). With the generated file, the resources are in
the project but not marked as member of the target.
I thought maybe the 'file' command was setting other source file properties
like EXTERNAL_OBJECT so i tried setting it up by hand, but it doesn't work
either.
--
Powered by www.kitware.com
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Please keep messages on-topic and check the CMake FAQ at:
http://www.cmake.org/Wiki/CMake_FAQ
Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake