Maxon Developers Maxon Developers
    • Documentation
      • Cinema 4D Python API
      • Cinema 4D C++ API
      • Cineware API
      • ZBrush GoZ API
      • Code Examples on Github
    • Forum
    • Downloads
    • Support
      • Support Procedures
      • Registered Developer Program
      • Plugin IDs
      • Contact Us
    • Categories
      • Overview
      • News & Information
      • Cinema 4D SDK Support
      • Cineware SDK Support
      • ZBrush 4D SDK Support
      • Bugs
      • General Talk
    • Unread
    • Recent
    • Tags
    • Users
    • Login

    Project Tool include

    Cinema 4D SDK
    project tool
    4
    9
    2.0k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • rsodreR
      rsodre
      last edited by rsodre

      Hi,

      I need to add some library includes to a plugin, outside the sources folder, so I'm using and the Include=, I see a few improvements to make it much better.

      • We have to specify file by file, there's no way to include a complete folder. I have only 20 sources, but some libraries have dozens or hundreds of includes that should be listed one by one. Imagine if we need to upgrade the lib, having to check it all what's new and what's gone. It shouldn't be that painful.

      • The folder include option should be recursive or not recursive.

      • If I just use Include=, it does not work. It has to be Include.OSX= or Include.Win64=. Having the ability to add per platform is great, but in most cases the sources are common to all platforms. I'm adding around 20 sources, duplicating them all. This is unnecessary and prone to error.

      • In XCode, there's one group for each included folder files, would be much better if the groups were created hierarchically. Example, instead of having 2 groups like /xxxx/include and /xxx/include/math, a math group inside /xxx/include group is much better. Edit: Ok, it seems to be hierarchical, but with the full path name in the group name, and file names in lowercase.

      • Those groups could be inside the sources group, or everything into one Includes group.

      I can include everything I need right now, but instead of writing a few simple and clear lines, I'm writing 40, checking path by path, with duplicates...

      1 Reply Last reply Reply Quote 0
      • S
        s_bach
        last edited by

        Hello,

        just to be sure: what do you mean with "includes"?

        Do you want to add source code files to your project (.cpp) or do you want to use header files (.h)?

        If you just want to use header files you don't have to add them to your project. You can just define additional include directories:

        // Visual Studio
        AdditionalIncludeDirectories=../../mylib/include
        
        // Xcode
        USER_HEADER_SEARCH_PATHS=../../mylib/include
        

        See Visual Studio Specific and Xcode Specific.

        best wishes,
        Sebastian

        MAXON SDK Specialist

        Development Blog, MAXON Registered Developer

        rsodreR 1 Reply Last reply Reply Quote 2
        • rsodreR
          rsodre @s_bach
          last edited by

          @s_bach I want to be able to browse, search or edit the sources, so they need to be in the project.

          I'm also missing additional compile options for OSX. Maybe letting us set a xcconfig for the target would be nice catch-all alternative.

          1 Reply Last reply Reply Quote 0
          • S
            s_bach
            last edited by

            Hello,

            what compile options exactly are you missing?

            best wishes,
            Sebastian

            MAXON SDK Specialist

            Development Blog, MAXON Registered Developer

            rsodreR 1 Reply Last reply Reply Quote 0
            • rsodreR
              rsodre @s_bach
              last edited by

              Initially I wanted to disable no-rtti, but I found a solution without having to change it.

              But I think we should be able to set anything we want in the project from the project definition file. What I used to do in pre-R20 is to have a xcconfig file for the project and assign it to the target. It works very well, allows me to setup anything I want in the project without having to touch the project settings.

              1 Reply Last reply Reply Quote 0
              • rsodreR
                rsodre
                last edited by

                After some more time on a new R20 plugin, there's a few more things I miss in the Project Tool project generator. I'm assuming that we should never have to touch the generated project settings, or next generation will lose those manual changes.

                • Please add .res and .str file from the res folder to the generated project. We need to edit them even too.
                • Preserve the project name case. The generated project name is always lowercase.
                • Preserve the original file name case. Sources added with Include are lower case in the project. Any edit on those files will change the actual file name to lowercase too.
                • Include command for all platforms, when not specified. (Include=file.cpp)
                • Include command accepts full folder contents. (Include=../folder/)
                • Add a custom .xcconfig and .props to the target.
                • If no xcconfig, at least OTHER_CPLUSPLUSFLAGS (mac).
                • Add post build phases to the project. At least add a custom Run Script that runs a specified script so we can properly install the plugin.
                • Add a Release build schema to the XCode project.
                • Specify the location of the Cinema 4D app/exe and add it to the Run command.
                • Add projectdefinition.txt to the generated project. Why open it in a separated editor when we need to change it later?
                • Allow to include any kind of file to the project. I try to add a .sh shell script and it just won't
                • (bug) XCode project gets corrupted if we add a file twice with Include.

                Good to have:

                • Do not use the full path in hierarchical included groups, they can get too big. Only the final folder name is enough.
                • Put all additional included sources into one group, hierarchically.
                1 Reply Last reply Reply Quote 0
                • M
                  mp5gosu
                  last edited by

                  @rsodre said in Project Tool include:

                  I'm assuming that we should never have to touch the generated project settings, or next generation will lose those manual changes.

                  I can at least answer that. đŸ™‚
                  No, manual changes don't get lost if not crucial for working properly. For example, debugging commands, Post-Build directives and so on stay in your solution. I was very suprised about that and I'm rellay glad to have it this way.

                  Add a Release build schema to the XCode project.

                  What do you mean? Just switch to release and compile.

                  Specify the location of the Cinema 4D app/exe and add it to the Run command.

                  Good idea.

                  rsodreR 1 Reply Last reply Reply Quote 0
                  • rsodreR
                    rsodre @mp5gosu
                    last edited by

                    @mp5gosu said in Project Tool include:

                    What do you mean? Just switch to release and compile.

                    There's no such thing in XCode anymore. We can build for release using Archive or Build For Profiling, but we can't Run as release.

                    1 Reply Last reply Reply Quote 0
                    • a_blockA
                      a_block
                      last edited by

                      Hi,

                      we have forwarded your ideas and suggestions toi our development.

                      Add post build phases to the project. At least add a custom Run Script that runs a specified script so we can properly install the plugin.

                      While I do see use cases for a post-build script/step option, it may not be needed for the purpose of installing a plugin. After all in R20 plugins can be located in arbitrary locations (like for example your project directory). You just need to add these locations via either preferences or via environment variable or command line option.

                      (bug) XCode project gets corrupted if we add a file twice with Include.

                      I'm not sure if I can follow here. Can you please check, if you are also lacking a release build option, if you run the project tool on a freshly unpacked sdk.zip?
                      Actually you should have all the options shown in the screenshot below:

                      0_1540581182413_261018_113521_0.png

                      Cheers,
                      Andreas

                      1 Reply Last reply Reply Quote 1
                      • First post
                        Last post