Run Project Tool with custom frameworks location



  • It's great to finally be able to work with the sdk anywhere in our system, but I would like to actually have my projects a bit far away from the SDK. My current build structure have all the sources and project files are on a main repository, and all sdks and third party tools on an External repository, far away. But seems like the plugins and frameworks should be always together.

    I can't generate a project if the frameworks folder is not at ../../ or somewhere else down from the project. I tried this...

    APIS=../../../../R20.026/frameworks/cinema.framework;
    

    But when running got all these errors...

    WARNING: Could not find settings or _external_libs for input file file:///aaa/bbb/ccc/projectdefinition.txt [projectmanager.cpp(1697)]
    WARNING: Could not parse project definition file. error: Could not find settings or _external_libs for input file file:///aaa/bbb/ccc/projectdefinition.txt (file:///aaa/bbb/ccc/projectdefinition.txt) [projectmanager.cpp(1698)] [projectmanager.cpp(1846)]
    WARNING: Could not find settings or _external_libs for input file file:///aaa/bbb/ccc/projectdefinition.txt (file:///aaa/bbb/ccc/projectdefinition.txt) [projectmanager.cpp(1698)] [projectmanager.cpp(2418)]
    Project file generation finished
    Update Project Time: 4.1 ms
    

    How can I set the main frameworks folder to a different location? If it's not possible, please take it as a suggestion to allow us to do that, as a macro in projectdefinition.txt or as an argument to kernel_app.

    What I did to make this work was to create a symbolic to the frameworks folder besides the project folder before running the tool.

    ln -ls ../../../../R20.026/frameworks .
    

  • Global Moderator

    Hi rsodre, thanks for writing us.

    The Cinema 4D SDK has it's own structure which actually needs that both the plugins and the frameworks folder share the same parent folder and this is what the SDK toolset (sourceprocessor and projecttool) expects to work with. Any change to this structure may lead to unexpected behaviors and is highly discouraged.
    Using the workaround you pointed out in the projectdefinition.txt is not expected to work as you've already checked.
    On the contrary using symbolic links seems to work, but again this is not officially supported.

    For the sake of completeness the ln command I used is

    ln -s <path to frameworks> <path to plugins>/../.
    

    and I succeeded to compile all the shipped plugins under macOS 10.13.6 with Xcode 9.4.1

    Cheers, Riccardo