Maxon Developers Maxon Developers
    • Documentation
      • Cinema 4D Python API
      • Cinema 4D C++ API
      • Cineware API
      • ZBrush Python 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

    Projecttool - avoid updating all projects

    Cinema 4D SDK
    4
    15
    2.4k
    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.
    • M
      mp5gosu
      last edited by

      This is strange. I'm using the same Post-Build event with VS and the commands are kept intact when running the project tool over it. Same goes for custom Macros and Debug-options.

      1 Reply Last reply Reply Quote 0
      • C4DSC
        C4DS
        last edited by

        Just launched the projecttool again ... custom settings are overwritten once more.
        Am I using an old version of the projecttool maybe?
        Or should I remove the "g_updateproject" argument?

        0_1550227145293_projecttool info.png

        Also, I keep a backup of the plugin (source, res and project folders) in a subfolder of the plugin.
        Obviously, the projecttool does process all subfolders. As such my backups are also updated.
        Any change to set up the projecttool to ignore these subfolders?

        1 Reply Last reply Reply Quote 0
        • C4DSC
          C4DS
          last edited by C4DS

          Well, it turns out I was using an "old" Project Tool. Went over the documentation once more and downloaded the latest version. Ran it ... and custom settings (post build, source folders/filters, ...) all gone, again.
          Fortunately, the debug options (location to cinema executable and g_alloc=Debug) remain as is. So, at list not everything gets cleared.

          Apart from that I don't see what I am doing wrong, just launching the projecttoo.bat file containing:

          d:\Projects\dev\SDK_R20\projecttool\kernel_app_64bit.exe g_updateproject=d:\Projects\dev\SDK_R20
          

          Edit: going over the documentation again since months, I now see that removing "g_updateprojects", as mentioned in my previous post, would have been rather silly.

          1 Reply Last reply Reply Quote 0
          • r_giganteR
            r_gigante
            last edited by

            Hi Daniel, thanks for reaching us 😉

            With regard to your issue, although there's no option at the moment to include in the projectdefinition.txtto exclude a certain project from being rebuilt, what I suggest is to just run it over the project you need to rebuild rather than on the whole solution folder.

            To be more clear, give the current SDK structure:

            <Cinema 4D>
                |-corelibs
                |-...
                |-sdk
                    |-frameworks
                    |-plugins
                        |-cinema4dsdk
                            |-project (this contains the project)
                            |-source
                            |-...
                        |-maxonsdk
                        |-microsdk
                        |-project (this contains the solution)
            

            you can run:

            • kernel_app_64bit.exe g_updateproject=<Cinema4D>/sdk : to create/update frameworks/plugins
            • kernel_app_64bit.exe g_updateproject=<Cinema4D>/sdk/plugins/ : to create/update all the plugins
            • kernel_app_64bit.exe g_updateproject=<Cinema4D>/sdk/plugins/cinema4dsdk : to create/update only the cinema4dsdk project

            Last but not least running kernel_app_64bit.exe g_updateproject=<Cinema4D>/sdk/plugins/cinema4dsdk or kernel_app_64bit.exe g_updateproject=<Cinema4D>/sdk/plugins/cinema4dsdk/project has the same effect

            Looking forward comments on your side, give best.

            Riccardo

            1 Reply Last reply Reply Quote 2
            • C4DSC
              C4DS
              last edited by

              Hi Riccardo,
              At first sight I thought "but of course, why didn't I think of that".
              But on second thought, the whole purpose of running the Project Tool is because I need to add a new plugin to the solution.

              So, I actually don't need to update a single plugin project, but need to update the solution project ... well, I mean, the project containing the solution.
              As far as I have understood I would these need to run the Project Tool on /plugins/ which will thus update all plugins' projects.

              1 Reply Last reply Reply Quote 0
              • r_giganteR
                r_gigante
                last edited by r_gigante

                Hi Daniel,

                if you'd like to add a new plugin (<Cinema 4D>/sdk/plugins/plugin_X) to your solution without touching the other plugins' projects you can:

                • create the folder structure for plugin_X
                • create the projectdefinition.txt in the project folder of plugin_X
                • run kernel_app_64bit.exe g_updateproject=<Cinema4D>/sdk/plugins/plugin_X in order to create the corresponding project file for the plugin_X
                • modify the projectdefinition.txt in the project folder of plugins to include the plugin_X in the solution file
                • run kernel_app_64bit.exe g_updateproject=<Cinema4D>/sdk/plugins/project in order to update the solution file.

                Obviously this is approach can also to work when it's needed to update any other single plugin or only the solution.

                Hoping it makes sense, feel free to come back with further comments.

                Best, Riccardo

                C4DSC 1 Reply Last reply Reply Quote 2
                • C4DSC
                  C4DS @r_gigante
                  last edited by

                  @r_gigante
                  Thanks for this. It ticks all the boxes for me.
                  Although I had hoped for a solution with less batch files, I now understand it's better to have separate batch files per plugin. And one for updating the project solution, without updating every plugin.
                  So obvious it's embarrassing, but some... ,ok, most times I need someone else to show me the obvious.

                  Still wondering about @mp5gosu 's answer.

                  Thanks again Riccardo.

                  1 Reply Last reply Reply Quote 0
                  • M
                    mp5gosu
                    last edited by

                    Hey there. I was not quite right about the Post-Build Script.
                    Years ago I started using an extension that configures my solutions before every run. Looks like I simply forgot about that.
                    However, it automatically sets the event on every run.

                    Sorry about the confusion. 🙂

                    C4DSC 1 Reply Last reply Reply Quote 1
                    • C4DSC
                      C4DS @mp5gosu
                      last edited by

                      @mp5gosu
                      Thanks for the clarification.

                      1 Reply Last reply Reply Quote 0
                      • M
                        mp5gosu
                        last edited by

                        But since we are talking about that, I'd file a feature request.
                        It should be possible to define portions of the solution that should not be overriden.

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

                          I have filed a feature request in our development.
                          Cheers,
                          Andreas

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

                            Hi,

                            there are two more approaches, we discussed when suggesting this request to our development.

                            a) So obvious, we should have come up with in the first place and you probably already considered yourself: Use of your diff tool. Before running the project tool, save the old project files and afterwards use the diff tool to carry over the manual changes. I know, still cumbersome.

                            b) Maybe .props files can be put to use here. These shouldn't be touched by the project tool.

                            Nevertheless, it will also be considered to tackle this issue inside of the project tool.

                            Cheers,
                            Andreas

                            C4DSC 1 Reply Last reply Reply Quote 2
                            • C4DSC
                              C4DS @a_block
                              last edited by

                              @a_block
                              I am not so in favor of solution a) and as for b) I am no expert when it comes to props files. Someone will need to teach and tutor.
                              Still, I appreciate the suggestions.

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

                                Here's an older blog post about VS property sheets. Still for VS2010, but the principle is still the same.
                                Sharing project properties in Visual C++

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