We value your input! Please participate in Archicad 28 Home Screen and Tooltips/Quick Tutorials survey
2024-02-20 10:51 PM - last edited on 2024-09-16 02:46 PM by Doreena Deng
Hello,
I have used CMake to create a new solution and apparently it had worked, but the new solution is as if it was linked to the source solution. When I modify something in the new solution the ExampleAddOn.sln file is modified as well and vice versa.
I chose the folder where the CMakeLists.txt file is located as source code.
Can someone explain to me what is the correct way to create a new solution based on the AddOn template using CMake? Thanks.
Regards,
Solved! Go to Solution.
2024-02-26 03:48 PM - edited 2024-02-26 04:13 PM
hope its ok when i chime in. i succsellfully created a few plugins. and i do it all the time the same way now:
evrything is based of this repo:
https://github.com/GRAPHISOFT/archicad-addon-cmake
0. create a new folder in my file system where i want to have my plugin
1. open powershell
2. go to the directory where i want to have my plugin with the "Set-Location" command
3. clone this git repo with the command:
git clone https://github.com/GRAPHISOFT/archicad-addon-cmake.git --recurse-submodules
4. Open Visual Studio. EMTPY!
5. Use FILE > NEW > CMAKE... and choose the CMAKE.txt that you downloaded with the git command
6. Create the Visual Studio Solution with the Command:
cmake -B Build -G "Visual Studio 17 2022" -A x64 -T v142 -DAC_API_DEVKIT_DIR=<DevKitSupportDir>
7. Go Instantly in to the new created Solution and Build it. Copy the apx into your archicad plugin folder to check if it works.
8. Start Blasting with the development
Plus Points for using github for your repo:
1. Create a privte repo on gitgub
2. Upload your repo to github with the here mentioned commands
3. if you dont want to have all the archicad template guys named als contributors for your repo, you just need to rename the branch.
From my standpoints that all you need to know about cmake to succsessfully ship an archicad plugin.
do you want to know more? 😉
if you still want to know more:
CMAKE is a powerfull software build system. if you want to master it you should make a little programm where you create your own cmake file.
this is very helpfull to get a hang of cmake:
https://cmake.org/cmake/help/latest/guide/tutorial/index.html
if you want to know more of cmake in the archicad plugin context, i found it interesting to check out the chache file of cmake. its in your repo folder and its named "CMakeCache.txt". there you can inspect a lot of the variables that are used to make your plugin.
as an example:
i found it very intresting to see the link to the ressource builder that gets his variables trough the python file in the solution.
it shows impressive waht complicated system is in place to build a plugin. 😃
if you analyze this file it should become clear that you cant just copy pase a template an use it for anothe plugin since all the variables are set in the chache file. i would not recommand to try to rename all the variables manually.
i did on this answer an detailed step-by-step guid how to create a plugin:
https://community.graphisoft.com/t5/Documentation/developing-an-add-on-on-c/m-p/395814#M61448
maybe you find one or another thing helpfull.
2024-02-21 08:27 PM - edited 2024-02-21 08:28 PM
Hello,
Solution:
Regards,
2024-02-22 04:42 PM - edited 2024-02-22 04:43 PM
Sorry, this is not the solution, this linking behavior keeps occurring. Does anyone know how to unlink the created solutions? Is there any changes I need to make to achieve this?
On the other hand, I have tried to create my own template to avoid all this CMake nightmare, but without success...
Wouldn't it be easier for Graphisoft programmers just to create templates for each Archicad/Archicad API version?
Regards,
2024-02-23 08:51 AM - edited 2024-02-23 08:51 AM
Hi Organon,
To me it seems you are using the template in a different way than it was intended. I use the CMake project directly with Visual Studio. Internally it creates a solution file, sure, but then I'm not adapting the solution file. If I want to change something in the build, I change the CMakeLists.txt project setup.
Would this be a possible way for you or do you need to work with a solution file?
Setting up your own template is quite an involved task because of all the things you have to get right. Especially resource compilation is not easy to setup in my eyes. A possible alternative would be grab some old API release and adapt these for newer AC/API SDK releases. The AC25 SDK was the last to provide Visual Studio Project files for the examples.
@Organon wrote:
Wouldn't it be easier for Graphisoft programmers just to create templates for each Archicad/Archicad API version?
I think Graphisoft is providing cmake templates since they can be used both on Windows and macOS without much adaption. If they were to create a Visual Studio template, they would also have to make a XCode template (which they have done in previous versions before switching to CMake).
Hope that helps,
Bernd
2024-02-23 04:52 PM - edited 2024-02-23 04:53 PM
Hello,
Thanks for your observations.👍
Okay. Can you explain me the steps you follow to create a new add-on? Or can you point me to a link where it is well explained? I just want to understand this CMake thing. Thanks.
Yes, I tried with an outdated template and then modified it, I also tried to create a template from scratch, but none of the options worked.
Regards,
2024-02-26 03:48 PM - edited 2024-02-26 04:13 PM
hope its ok when i chime in. i succsellfully created a few plugins. and i do it all the time the same way now:
evrything is based of this repo:
https://github.com/GRAPHISOFT/archicad-addon-cmake
0. create a new folder in my file system where i want to have my plugin
1. open powershell
2. go to the directory where i want to have my plugin with the "Set-Location" command
3. clone this git repo with the command:
git clone https://github.com/GRAPHISOFT/archicad-addon-cmake.git --recurse-submodules
4. Open Visual Studio. EMTPY!
5. Use FILE > NEW > CMAKE... and choose the CMAKE.txt that you downloaded with the git command
6. Create the Visual Studio Solution with the Command:
cmake -B Build -G "Visual Studio 17 2022" -A x64 -T v142 -DAC_API_DEVKIT_DIR=<DevKitSupportDir>
7. Go Instantly in to the new created Solution and Build it. Copy the apx into your archicad plugin folder to check if it works.
8. Start Blasting with the development
Plus Points for using github for your repo:
1. Create a privte repo on gitgub
2. Upload your repo to github with the here mentioned commands
3. if you dont want to have all the archicad template guys named als contributors for your repo, you just need to rename the branch.
From my standpoints that all you need to know about cmake to succsessfully ship an archicad plugin.
do you want to know more? 😉
if you still want to know more:
CMAKE is a powerfull software build system. if you want to master it you should make a little programm where you create your own cmake file.
this is very helpfull to get a hang of cmake:
https://cmake.org/cmake/help/latest/guide/tutorial/index.html
if you want to know more of cmake in the archicad plugin context, i found it interesting to check out the chache file of cmake. its in your repo folder and its named "CMakeCache.txt". there you can inspect a lot of the variables that are used to make your plugin.
as an example:
i found it very intresting to see the link to the ressource builder that gets his variables trough the python file in the solution.
it shows impressive waht complicated system is in place to build a plugin. 😃
if you analyze this file it should become clear that you cant just copy pase a template an use it for anothe plugin since all the variables are set in the chache file. i would not recommand to try to rename all the variables manually.
i did on this answer an detailed step-by-step guid how to create a plugin:
https://community.graphisoft.com/t5/Documentation/developing-an-add-on-on-c/m-p/395814#M61448
maybe you find one or another thing helpfull.
2024-02-27 02:06 AM