Compile on Windows/it: Difference between revisions

From FreeCAD Documentation
No edit summary
No edit summary
(181 intermediate revisions by 4 users not shown)
Line 2: Line 2:


{{Docnav/it
{{Docnav/it
|[[Licence/it|Licenza]]
|[[License/it|Licenza]]
|[[Compile_on_Linux/it|Compilazione in Linux]]
|[[Compile_on_Linux/it|Compilazione in Linux]]
}}
}}
Line 8: Line 8:
{{TOCright}}
{{TOCright}}


Questa pagina spiega passo dopo passo '''come compilare FreeCAD 0.19 o più recente su Windows''' utilizzando il compilatore MSVC di Microsoft. Per informazioni sull'utilizzo di MSYS2/MinGW, vedere [[Compile_on_MinGW/it|Compilare su MinGW]]. Per altre piattaforme vedere [[Compiling/it|Compilazione]].
Questa pagina spiega passo dopo passo '''come compilare FreeCAD 0.19 o più recente su Windows''' utilizzando il compilatore MSVC di Microsoft. Per informazioni sull'utilizzo di MSYS2/MinGW, vedere [[Compile_on_MinGW/it|Compilare su MinGW]]. Per altre piattaforme vedere [[Compiling/it|Compilare FreeCAD]].


<span id="Prerequisites"></span>
== Prerequisiti ==
== Prerequisiti ==


La compilazione di FreeCAD su Windows richiede diversi strumenti e librerie.
La compilazione di FreeCAD su Windows richiede diversi strumenti e librerie.


<span id="Required"></span>
===Programmi richiesti===
===Programmi richiesti===


* Un compilatore. FreeCAD è testato con Visual Studio (MSVC): altri compilatori potrebbero funzionare, ma le istruzioni per l'uso non sono incluse qui. Per maggiori dettagli, vedere la sezione [[#Compiler|Compilatore]] di seguito.
* Un compilatore. FreeCAD è testato con Visual Studio (MSVC): altri compilatori potrebbero funzionare, ma le istruzioni per l'uso non sono incluse qui. Per maggiori dettagli, vedere la sezione [[#Compilatore|Compilatore]] di seguito.


* [http://git-scm.com/ Git] (Sono disponibili anche frontend GUI per Git, vedere la sezione successiva.)
* [http://git-scm.com/ Git] (Sono disponibili anche frontend GUI per Git, vedere la sezione successiva.)


* [https://cmake.org/download/ CMake] versione 3.11.x o successiva. </br> ''Suggerimento:'' Scegliendo l'opzione ''Add CMake to the system PATH for all users'' durante l'installazione di CMake renderà CMake accessibile dal prompt dei comandi di Windows, il che può essere utile.
* [https://cmake.org/download/ CMake] versione 3.11.x o successiva. </br> ''Suggerimento:'' Scegliendo l'opzione ''Add CMake to the system PATH for all users'', durante l'installazione di CMake, si renderà CMake accessibile dal prompt dei comandi di Windows, il che può essere utile.


* Il [https://github.com/FreeCAD/FreeCAD-LibPack LibPack]. Questo è un singolo pacchetto contenente tutte le librerie necessarie per compilare FreeCAD su Windows. Scaricare la versione del LibPack che corrisponde alla versione di FreeCAD che si desidera compilare. Per compilare FreeCAD 0.20 scaricare il [https://github.com/FreeCAD/FreeCAD-LibPack/releases/tag/2.6 LibPack versione 2.6], per FreeCAD 0.19 scaricare il [https://github.com/FreeCAD/FreeCAD-LibPack /releases/tag/1.0 LibPack versione 1.0]. Estrarre il LibPack in una posizione comoda. (Se il tuo computer non riconosce l'estensione .7z, installare il programma [https://www.7-zip.org 7-zip].) </br> '''Nota''': Si consiglia caldamente di compilare FreeCAD con la versione del compilatore per cui è progettato il LibPack. Ad esempio, si potrebbero riscontrare problemi durante la compilazione di FreeCAD 0.20 utilizzando MSVC&nbsp;2017 perché il LibPack è progettato per essere compilato con MSVC&nbsp;2019 o versioni successive.</br>Per aggiornare il LibPack in un secondo momento, consultare la sezione [[#Aggiornamento del Libpack|Aggiornamento del Libpack]].
* Il [https://github.com/FreeCAD/FreeCAD-LibPack LibPack]. Questo è un singolo pacchetto contenente tutte le librerie necessarie per compilare FreeCAD su Windows. Scaricare la versione del LibPack che corrisponde alla versione di FreeCAD che si desidera compilare. Per compilare FreeCAD 0.20 scaricare il [https://github.com/FreeCAD/FreeCAD-LibPack/releases/tag/2.6 LibPack versione 2.6], per FreeCAD 0.19 scaricare il [https://github.com/FreeCAD/FreeCAD-LibPack/releases/tag/1.0 LibPack versione 1.0]. Estrarre il LibPack in una posizione facilmente accessibile. (Se il tuo computer non riconosce l'estensione .7z, installare il programma [https://www.7-zip.org 7-zip].) </br> '''Nota''': Si consiglia caldamente di compilare FreeCAD con la versione del compilatore per cui è progettato il LibPack. Ad esempio, si potrebbero riscontrare problemi durante la compilazione di FreeCAD 0.20 utilizzando MSVC&nbsp;2017 perché il LibPack è progettato per essere compilato con MSVC&nbsp;2019 o versioni successive.</br>Per aggiornare il LibPack in un secondo momento, consultare la sezione [[#Aggiornamento_del_Libpack|Aggiornamento del Libpack]].


<span id="Optional_programs"></span>
===Programmi opzionali===
===Programmi opzionali===


* Un frontend GUI per Git. Ci sono diversi frontend disponibili, vedi [https://en.wikipedia.org/wiki/Comparison_of_Git_GUIs this list]. Il vantaggio principale di un frontend è che non devi imparare i comandi Git per ottenere il codice sorgente di FreeCAD o per inviare patch al repository GitHub di FreeCAD.
* Un frontend GUI per Git. Ci sono diversi frontend disponibili, vedere [https://en.wikipedia.org/wiki/Comparison_of_Git_GUIs questa lista]. Il vantaggio principale di un frontend è che non si devono imparare i comandi Git per scaricare il codice sorgente di FreeCAD o per inviare patch al repository GitHub di FreeCAD.


Di seguito descriviamo la gestione del codice sorgente usando il frontend [https://tortoisegit.org/ TortoiseGit]. Questo frontend si integra direttamente in Windows con Esplora file e dispone di una grande comunità di utenti per ricevere assistenza in caso di problemi.
Di seguito descriviamo la gestione del codice sorgente usando il frontend [https://tortoisegit.org/ TortoiseGit]. Questo frontend si integra direttamente in Windows con Esplora file e dispone di una grande comunità di utenti per ricevere assistenza in caso di problemi.
Line 32: Line 35:
* [http://sourceforge.net/projects/nsis/ NSIS] viene utilizzato per generare il programma di installazione di Windows di FreeCAD.
* [http://sourceforge.net/projects/nsis/ NSIS] viene utilizzato per generare il programma di installazione di Windows di FreeCAD.


<span id="Source_code"></span>
===Codice sorgente===
===Codice sorgente===


Ora puoi ottenere il codice sorgente di FreeCAD:
A questo punto si può scaricare il codice sorgente di FreeCAD:


<span id="Using_a_frontend"></span>
====Utilizzo di un frontend====
====Utilizzo di un frontend====


Quando si utilizza il [https://en.wikipedia.org/wiki/Comparison_of_Git_GUIs Git frontend] TortoiseGit:
Quando si utilizza il [https://en.wikipedia.org/wiki/Comparison_of_Git_GUIs frontend di Git] TortoiseGit:
# Crea una nuova cartella in cui verrà scaricato il codice sorgente.
# Creare una nuova cartella in cui verrà scaricato il codice sorgente.
# Fare clic con il tasto destro su questa cartella in Esplora file di Windows e selezionare nel menu contestuale '''Git Clone'''.
# Fare clic con il tasto destro su questa cartella in Esplora file di Windows e selezionare nel menu contestuale '''Git Clone'''.
# Apparirà una finestra di dialogo. In esso, inserisci l'URL per il repository Git di FreeCAD
# Apparirà una finestra di dialogo. In esso, inserisci l'URL per il repository Git di FreeCAD
Line 49: Line 54:
L'ultimo codice sorgente verrà scaricato dal repository Git di FreeCAD e la cartella verrà tracciata da Git.
L'ultimo codice sorgente verrà scaricato dal repository Git di FreeCAD e la cartella verrà tracciata da Git.


<span id="Using_the_command_line"></span>
====Usando la riga di comando====
====Usando la riga di comando====


Line 57: Line 63:
}}
}}


<span id="Compiler"></span>
===Compilatore===
===Compilatore===


Il compilatore predefinito (consigliato) è MS Visual Studio (MSVC). Sebbene sia possibile utilizzare altri compilatori, ad esempio gcc tramite Cygwin o MinGW, questi non sono testati o esaminati qui.
Il compilatore predefinito (consigliato) è MS Visual Studio (MSVC). Sebbene sia possibile utilizzare altri compilatori, ad esempio gcc tramite Cygwin o MinGW, questi non sono testati o esaminati qui.


È possibile ottenere una versione gratuita di MSVC (per uso individuale) scaricando l'[https://visualstudio.microsoft.com/vs/community/ ''Community'' edition di MS Visual Studio].
È possibile ottenere una versione gratuita di MSVC (per uso individuale) scaricando la [https://visualstudio.microsoft.com/vs/community/ versione ''Community'' di MS Visual Studio].


Per chi vuole evitare l'installazione completa dell'ingombrante MSVC al solo scopo di avere un compilatore può vedere [[CompileOnWindows - Reducing Disk Footprint/it|Compilare in Windows - Occupare meno spazio]].
Per chi vuole evitare l'installazione completa dell'ingombrante MSVC al solo scopo di avere un compilatore può vedere [[CompileOnWindows - Reducing Disk Footprint/it|Compilare in Windows - Occupare meno spazio]].


'''Nota:''' Sebbene l'edizione ''Community'' di MSVC sia gratuita, per utilizzare l'IDE per un periodo di prova superiore a 30 giorni è necessario creare un account Microsoft. Se compilerai solo utilizzando la riga di comando, non avrai bisogno dell'IDE e quindi nessun account Microsoft.
'''Nota:''' Sebbene l'edizione ''Community'' di MSVC sia gratuita, per utilizzare l'IDE per un periodo di prova superiore a 30 giorni è necessario creare un account Microsoft. Se compilerai solo utilizzando la riga di comando, non avrai bisogno dell'IDE e quindi di nessun account Microsoft.


Come IDE alternativo gratuito e OpenSource puoi usare [https://www.kdevelop.org/download KDevelop]. Puoi usare KDevelop per modificare e scrivere codice C++, ma devi usare la riga di comando per compilare.
<div class="mw-translate-fuzzy">
Come IDE alternativo gratuito e OpenSource puoi usare [https://www.kdevelop.org/download KDevelop]. Puoi usare KDevelop per modificare e scrivere codice C ++ ma devi usare la riga di comando per compilare.
</div>


<span id="Optional_system_path_configuration"></span>
===Optional System Path Configuration===
===Configurazione opzionale del percorso di sistema===


programmi in queste cartelle dalla riga di comando / powershell o se si desidera trovare programmi speciali da parte del compilatore o di CMake. Oltre a ciò, potrebbe essere necessario aggiungere cartelle al PERCORSO se non si sono utilizzate le opzioni corrispondenti durante l'installazione del programma.
Facoltativamente è possibile includere i percorsi di alcune cartelle nella variabile PATH di sistema. Ciò è utile se si desidera accedere ai programmi in queste cartelle dalla riga di comando/powershell o se si desidera che il compilatore o CMake trovino programmi speciali. Oltre a questo, potrebbe essere necessario aggiungere cartelle al PATH se non si sono utilizzate le opzioni corrispondenti durante l'installazione del programma.


* Puoi includere la cartella del tuo LibPack nella variabile PATH del tuo sistema. Ciò è utile se prevedi di creare più configurazioni / versioni di FreeCAD.
* Si può includere la cartella del tuo LibPack nella variabile PATH del tuo sistema. Ciò è utile se si prevede di creare più configurazioni / versioni di FreeCAD.
* Se non hai utilizzato l'opzione per aggiungere CMake al PERCORSO durante l'installazione, aggiungi la sua cartella di installazione
* Se non si ha utilizzato l'opzione per aggiungere CMake al PERCORSO durante l'installazione, aggiungere la sua cartella di installazione


''C:\Program Files\CMake\bin'' to the PATH.
''C:\Program Files\CMake\bin'' to the PATH.
* Se non hai utilizzato l'opzione per aggiungere TortoiseGit al PERCORSO durante l'installazione, aggiungi la sua cartella di installazione
* Se non si ha utilizzato l'opzione per aggiungere TortoiseGit al PERCORSO durante l'installazione, aggiungere la sua cartella d'installazione


''C:\Program Files\TortoiseGit\bin'' to the PATH.
''C:\Program Files\TortoiseGit\bin'' to the PATH.


Per aggiungere percorsi di cartelle alla variabile PATH:
Per aggiungere percorsi di cartelle alla variabile PATH:
# Nel menu Start di Windows, fai clic con il pulsante destro del mouse su "Computer" e scegli "Proprietà".
# Nel menu Start di Windows, fare clic con il pulsante destro del mouse su "Computer" e scegliere "Proprietà".
# Nella finestra di dialogo visualizzata, fai clic su "Impostazioni di sistema avanzate".
# Nella finestra di dialogo visualizzata, fare clic su "Impostazioni di sistema avanzate".
# Si aprirà un'altra finestra di dialogo. Fare clic nella scheda '' Avanzate '' in '''Variabili d'ambiente'''.
# Si aprirà un'altra finestra di dialogo. Fare clic nella scheda '' Avanzate '' in '''Variabili d'ambiente'''.
# Ancora una volta si aprirà un'altra finestra di dialogo. Seleziona quindi la variabile '' Percorso '' e fai clic su '''Modifica'''.
# Ancora una volta si aprirà un'altra finestra di dialogo. Selezionare quindi la variabile '' Percorso '' e fare clic su '''Modifica'''.
# E di nuovo si aprirà un'altra finestra di dialogo. Fai clic su '''Nuovo''' e aggiungi al percorso la cartella di Git o LibPack.
# Si aprirà un'altra finestra di dialogo. Fare clic su '''Nuovo''' e aggiungere al percorso la cartella di Git o LibPack.
# Infine premi '''OK''' e chiudi tutte le finestre di dialogo premendo anche '''OK'''.
# Infine cliccare '''OK''' e chiudere tutte le finestre di dialogo cliccando ancora '''OK'''.


<span id="Configuration"></span>
== Configurazione ==
== Configurazione ==


Una volta che hai tutti gli strumenti, le librerie e il codice sorgente di FreeCAD necessari, sei pronto per iniziare il processo di configurazione e compilazione. Questo processo procederà in cinque fasi:
Once you have all of the necessary tools, libraries, and FreeCAD source code, you are ready to begin the configuration and compilation process. This process will proceed in five steps:
# Eseguire CMake una prima volta per esaminare il tuo sistema e iniziare l'avanzamento della configurazione (verrà segnalato che l'operazione non è riuscita).
# Run CMake once to examine your system and begin the configuration progress (this will report that it failed).
# Adjust necessary CMake settings to set the locations of the LibPack and enable Qt5.
# Aggiustare le impostazioni CMake necessarie per configurare i percorsi del LibPack e abilitare Qt5.
# Re-run CMake to finalize the configuration (this time it should succeed).
# Rieseguire CMake per finalizzare la configurazione (questa volta dovrebbe riuscire).
# Utilizzare CMake per generare il sistema di compilazione di Visual Studio.
# Use CMake to generate the Visual Studio build system.
# Use Visual Studio to build FreeCAD.
# Utilizzare Visual Studio per creare FreeCAD.


===CMake===
===CMake===


Inizialmente configurare l'ambiente di compilazione utilizzando CMake:
<div class="mw-translate-fuzzy">
# Aprire la GUI di CMake
Ora devi configurare l'ambiente di compilazione usando CMake:
# Apri la GUI di CMake
# Specificare la cartella di origine di FreeCAD.
# Specificare una cartella di compilazione. Questa può essere '''build''' nella cartella in cui è stato clonato il repository, perché questo percorso è ignorato da git. Non utilizzare la cartella di origine. CMake creerà questa cartella se non esiste.
# Specificare lì la cartella di origine di FreeCAD
# Fare clic su '''Configura'''.
# Specifica la cartella di creazione che hai appena creato nel passaggio precedente.
# Nella finestra di dialogo, che appare, specificare il generatore, che si desidera utilizzare: nella maggior parte dei casi verranno utilizzate le impostazioni predefinite in questa finestra di dialogo. Per lo standard MS Visual Studio utilizzare ''Visual Studio xx 2yyy'' dove xx è la versione del compilatore e 2yyy l'anno del suo rilascio. Si consiglia di utilizzare l'opzione predefinita ''Use default native compilers''.
# Fai clic su '''Configura'''
# Nella finestra di dialogo visualizzata specificare il generatore in base a quello che si desidera utilizzare. Per MS Visual Studio standard usa ''Visual Studio xx 2yyy ''dove xx è la versione del compilatore e 2yyy l'anno della sua uscita. Si consiglia di utilizzare l'opzione predefinita ''Usa compilatori nativi predefiniti''.
</div>


'''Nota:''' È importante specificare la variante col numero di bit corretta. Se hai la variante a 64 bit di LibPack devi usare anche il compilatore x64.
<div class="mw-translate-fuzzy">
'''Nota:''' È importante specificare la variante di bit corretta. Se hai la variante a 64 bit di LibPack devi usare anche il compilatore x64.
</div>


Questo avvierà la configurazione e ''fallirà'' a causa delle impostazioni mancanti. Questo è normale: non hai ancora specificato la posizione del LibPack. Tuttavia, potrebbero verificarsi altri errori, che richiedono ulteriori azioni da parte tua.
<div class="mw-translate-fuzzy">
Questo avvierà la configurazione e fallirà a causa delle impostazioni mancanti.
</div>


Se non riesce, con il messaggio che Visual Studio non è stato trovato, il supporto CMake in MSVC non è ancora installato. Per farlo:
<div class="mw-translate-fuzzy">
# Aprire l'IDE MSVC
Se non riesce con il messaggio che Visual Studio non è stato trovato, il supporto CMake in MSVC non è ancora installato. Per farlo:
# Utilizzare il menu Strumenti → Ottieni strumenti e funzionalità
# Apri l'IDE MSVC
# Nella scheda ''Workloads'' abilita ''Desktop development with C++''
# Utilizza il menu Strumenti → Ottieni strumenti e funzionalità
# Sul lato destro ora si dovrebbe vedere il messaggio, che il componente ''Visual C++ tools for CMake'' verrà installato.
# Nella scheda ''Carichi di lavoro'' abilita ''Sviluppo desktop con C++ ''
# Installarlo.
# Sul lato destro ora dovresti vedere che il componente ''Strumenti Visual C++ per CMake'' sarà installato.
# Installalo.
</div>


If it fails with a message about the wrong Python version or missing Python, then:
Se fallisce, con un messaggio relativamente alla versione Python errata o Python mancante, allora:
# Use the "Search:" box in CMake to search for the string "Python"
# Usare la casella "Search:" in CMake per cercare la stringa "Python"
# If you see there a path like ''C:/Program Files/Python38/python.exe'', CMake recognized the Python that is already installed on your PC, but that version is not compatible with the LibPack. Since the LibPack includes a compatible version of Python, modify the following Python settings in CMake to its paths (assuming the LibPack is in the folder ''D:\FreeCAD-build\FreeCADLibs_12.5.2_x64_VC17''):
# Se si ottiene un percorso come ''C:/Program Files/Python38/python.exe'', CMake ha trovato, che Python è già installato sul tuo PC, ma che quella versione non è compatibile con il LibPack. Poiché il LibPack include una versione compatibile di Python, modificare le seguenti impostazioni Python nei percorsi di CMake (supponendo che il LibPack si trovi nella cartella ''D:/FreeCAD-build/FreeCADLibs_2_8_x64_VC2019''):
[[File:CMake_Python_settings.png]]
[[File:CMake_Python_settings.png]]


Se non appaiono errori da Visual Studio o da Python, va tutto bene, ma CMake non ha ancora tutte le impostazioni necessarie. Pertanto successivamente:
<div class="mw-translate-fuzzy">
# Cercare in CMake la variabile '''FREECAD_LIBPACK_DIR''' e specificare la posizione della cartella LibPack, che è stata scaricata in precedenza.
Se non si verificano errori in Visual Studio o Python, va tutto bene, ma CMake non conosce ancora tutte le impostazioni necessarie. Pertanto ora:
# (Se si sta compilando FreeCAD 0.19) Cercare la variabile '''BUILD_QT5''' e abilitare questa opzione.
# Assicurati che l'opzione di ricerca ''Avanzate'' sia selezionata.
# (''Se si sta pianificando di eseguire direttamente dalla cartella di compilazione, ad esempio per il debug'') Cercare e attivare le seguenti opzioni:
# Cerca in CMake la variabile '''FREECAD_LIBPACK_DIR''' e specifica la posizione corretta nella cartella LibPack.
#* '''FREECAD_COPY_DEPEND_DIRS_TO_BUILD'''
# Cerca la variabile '''BUILD_QT5''' e abilita questa opzione.
#* '''FREECAD_COPY_LIBPACK_BIN_TO_BUILD'''
# Fai di nuovo clic su '''Configura'''
#* '''FREECAD_COPY_PLUGINS_BIN_TO_BUILD'''
</div>
# Fare di nuovo clic su '''Configure'''.

<div class="mw-translate-fuzzy">
Ora non dovrebbero esserci errori. In tal caso, fai clic su '''Genera'''. Al termine, è possibile chiudere CMake e continuare ad avviare la compilazione di FreeCAD. Tuttavia, per la prima compilazione tienilo aperto per il caso che desideri o devi modificare alcune opzioni per il processo di compilazione:
</div>


Ora non dovrebbero apparire errori. Se si continua a riscontrare errori, che non si riesce a diagnosticare, visitare le pagine [https://forum.freecadweb.org/viewforum.php?f=4 Install/Compile forum] sul sito Web del forum di FreeCAD. Se CMake ha terminato correttamente, cliccare su '''Generate'''. Fatto ciò si può chiudere CMake e avviare la compilazione di FreeCAD utilizzando Visual Studio. Tuttavia, per la prima compilazione, tenerlo aperto nel caso in cui si desideri o sia necessario modificare alcune opzioni per il processo di compilazione.
'''Note:''' When compiling FreeCAD 0.19, the CMake variable '''BUILD_ENABLE_CXX_STD''' will be set to '''C++14''' while for FreeCAD 0.20 it will be set to '''C++17'''. This is because FreeCAD 0.20 requires at least the C++ language standard version 17. So when you compiled the last time FreeCAD 0.19 it is necessary to re-run CMake for FreeCAD 0.20 to change the C++ language standard.


<span id="Options_for_the_build_process"></span>
=== Opzioni per il processo di compilazione ===
=== Opzioni per il processo di compilazione ===


Il sistema di generazione CMake offre la flessibilità necessaria per il processo di creazione. Ciò significa che è possibile attivare e disattivare alcune funzionalità o moduli tramite le variabili di CMake.
<div class="mw-translate-fuzzy">
Il sistema di generazione CMake offre la flessibilità necessaria per il processo di creazione. Ciò significa che è possibile attivare e disattivare alcune funzionalità o moduli tramite le variabili CMake.
</div>


<div class="mw-translate-fuzzy">
Ecco una descrizione di alcune di queste variabili:
Ecco una descrizione di alcune di queste variabili:
</div>


<div class="mw-translate-fuzzy">
{| class="wikitable" style="text-align:left"
{| class="wikitable" style="text-align:left"
|+ Link table
|-
|-
! Nome variabile !! Descrizione !! Predefinito
! Nome Variabile !! Descrizione !! Valore di Default
|-
|-
| BUILD_XXX || Crea FreeCAD con il componente XXX. Se non si desidera / è necessario compilare ad es. il workbench ''OpenSCAD'', disabilita la variabile ''BUILD_OPENSCAD''. FreeCAD non avrà quindi questo banco di lavoro.
| BUILD_XXX || Fare il Build di FreeCAD con il componente XXX. Se non si vuole o non si ha bisogno di compilare ad es. l'ambiente ''OpenSCAD'', disabilitare la variabile ''BUILD_OPENSCAD''. FreeCAD quindi non avrà questo ambiente di lavoro. '''Nota:''' Alcuni componenti sono necessari per altri componenti. Se per esempio deselezioni ''BUILD_ROBOT'' CMake ti informerà che il componente ''Path'' non può essere compilato correttamente. Pertanto controllare l'output di CMake dopo aver modificato un'opzione BUILD_XXX! || dipende
|-
</div>
| BUILD_ENABLE_CXX_STD || La versione standard del linguaggio C++. '''C++14''' è il più alto possibile per FreeCAD 0.19 mentre almeno '''C++17''' è richiesto per FreeCAD 0.20. Vedere anche la nota nella sezione [[#Compilazione_con_Visual_Studio_15_(2017)_e_successive|Compilazione con Visual Studio 15 (2017) e successive]] || dipende
|-
| BUILD_DESIGNER_PLUGIN|| Per creare il plug-in Qt Designer, consultare [[#Plugin_di_Qt_Designer|questa sezione di seguito]] || OFF
|-
| BUILD_FLAT_MESH|| Necessaria per avere una build che includa la [[MeshPart_CreateFlatMesh/it|funzionalità CreateFlatMesh]] || OFF
|-
| CMAKE_INSTALL_PREFIX || La cartella di output durante la creazione della destinazione ''INSTALL'', vedere anche la sezione [[#Esecuzione e installazione di FreeCAD|Esecuzione e installazione di FreeCAD]] || Cartella d'installazione predefinita del programma in Windows
|-
| FREECAD_COPY_DEPEND_DIRS_TO_BUILD || Copia le librerie dipendenti necessarie per eseguire FreeCAD.exe nella cartella di compilazione. Vedere anche la sezione [[#Esecuzione e installazione di FreeCAD|Esecuzione e installazione di FreeCAD]].</br> '''Nota:''' le opzioni FREECAD_COPY_XXX appaiono solo se le librerie non sono già state copiate. Se si ha solo bisogno di aggiornare/passare a un'altra versione di LibPack, consultare la sezione [[#Aggiornamento_del_Libpack|Aggiornamento del LibPack]]. Se si desidera ripristinare le opzioni per qualche motivo, si devono eliminare tutte le cartelle nella cartella di compilazione, ad eccezione della cartella LibPack. In CMake cancellare la cache e avviare come se si dovesse compilare per la prima volta. || OFF
|-
| FREECAD_COPY_LIBPACK_BIN_TO_BUILD || Copia i file binari LibPack necessari per eseguire FreeCAD.exe nella cartella di compilazione. Vedere anche la sezione [[#Esecuzione e installazione di FreeCAD|Esecuzione e installazione di FreeCAD]]. || OFF
|-
| FREECAD_COPY_PLUGINS_BIN_TO_BUILD|| Copia i file del plugin di Qt necessari per eseguire FreeCAD.exe nella cartella di compilazione. Vedere anche la sezione [[#Esecuzione e installazione di FreeCAD|Esecuzione e installazione di FreeCAD]]. || OFF
|-
| FREECAD_LIBPACK_USE || Attiva o disattiva l'utilizzo di FreeCAD LibPack. || ON
|-
| FREECAD_LIBPACK_DIR || Directory in cui si trova il LibPack. || Cartella del codice sorgente di FreeCAD
|-
| FREECAD_RELEASE_PDB || Crea librerie di debug (*.pdb) anche per build di rilascio. Non influisce sulla velocità (come farebbe una vera build di debug) e può essere molto utile per individuare arresti anomali nel codice di FreeCAD. Nel caso in cui FreeCAD si arresti in modo anomalo, verrà creato un file ''crash.dmp'' che può essere caricato con MSVC e se si dispone dei file PDB corrispondenti più il codice sorgente di quella versione è possibile eseguire il debug attraverso il codice. Senza i file PDB non è possibile eseguire il debug del codice e tutto ciò che il debugger mostra è il nome della DLL in cui si è verificato il crash. || ON
|-
| FREECAD_USE_MP_COMPILE_FLAG || Aggiunge l'opzione /MP (multiprocessore) ai progetti di Visual Studio, abilitando accelerazioni nelle CPU multi-core. Questo può accelerare notevolmente le build sui processori moderni.</br>'''Nota:''' Se disattivi '''FREECAD_USE_PCH''', la compilazione può sovraccaricare rapidamente lo spazio dell'heap, anche se hai 16 GB di RAM. || ON
|-
| FREECAD_USE_PCH || [https://en.wikipedia.org/wiki/Precompiled_header Precompila the headers] per risparmiare tempo di compilazione. || ON
|-
| FREECAD_USE_PYBIND11|| Include la libreria [https://github.com/pybind/pybind11 PyBind11]. Necessario avere una build che includa la [[MeshPart_CreateFlatMesh/it|funzionalità CreateFlatMesh]].</br>'''Nota:''' dopo averla attivata si potrebbe ricevere un errore di configurazione. Basta configurare di nuovo e il problema dovrebbe scomparire. || OFF
|}


<span id="Building_FreeCAD"></span>
== Costruzione di FreeCAD ==
== Compilare FreeCAD ==


A seconda del compilatore, il processo per la compilazione di FreeCAD sarà leggermente diverso. Nelle sezioni seguenti sono descritti i flussi di lavoro noti.
<div class="mw-translate-fuzzy">
Se stai costruendo con Qt Creator, passa a [[#Compilazione_con_Qt_Creator_(obsoleto)|Compilazione con Qt Creator (obsoleto)]], altrimenti procedi direttamente:
A seconda del compilatore, il processo per la creazione di FreeCAD sarà leggermente diverso. Nelle sezioni seguenti sono descritti i flussi di lavoro noti.
Se stai costruendo con Qt Creator, passa a [[#Building with Qt Creator|Building with Qt Creator]], altrimenti procedi direttamente:
</div>


<div class="mw-collapsible mw-collapsed toccolours">
<div class="mw-collapsible mw-collapsed toccolours">


<span id="Building_with_Visual_Studio_15_(2017)_or_newer"></span>
<div class="mw-translate-fuzzy">
=== Compilare con Visual Studio 15 2017, e Visual Studio 16 2019 ===
===Compilazione con Visual Studio 15 (2017) e successive===
</div>


<div class="mw-collapsible-content">
<div class="mw-collapsible-content">


<span id="Release_Build"></span>
==== Release Build ====
==== Rilascio della Build ====


# Avviare l'IDE di Visual Studio. Questo si può fare cliccando sul pulsante ''Apri progetto'' nella GUI di CMake o facendo doppio clic sul file ''FreeCAD.sln'', che si trova nella cartella di compilazione.
<div class="mw-translate-fuzzy">
# Nella barra degli strumenti dell'IDE MSVC assicurarsi di utilizzare per la prima compilazione ''Release''.
# Avvia l'IDE di Visual Studio. Questo può essere fatto premendo il pulsante ''Apri progetto'' nella GUI di CMake o facendo doppio clic sul file ''FreeCAD.sln'' che trovi nella cartella di compilazione.
# C'è una finestra chiamata ''Solution Explorer''. Elenca tutti i possibili target di compilazione. Per avviare una compilazione completa, fare clic con il pulsante destro del mouse sul target '''ALL_BUILD''' e quindi scegliere '''Build'''.
# Nella barra degli strumenti dell'IDE MSVC assicurati di utilizzare per la prima compilation ''Release''.
Ci vorrà molto tempo.
# C'è una finestra chiamata ''Solution Explorer''. Essa elenca tutti i possibili target di compilazione.
</div>


Per compilare un FreeCAD pronto all'uso, compila la destinazione '' INSTALLA '', vedere la sezione [[#Esecuzione_e_installazione_di_FreeCAD|Esecuzione e installazione di FreeCAD]].
<div class="mw-translate-fuzzy">
Per compilare un FreeCAD pronto all'uso, compila la destinazione '' INSTALLA '', vedi sezione [[#Running and installing FreeCAD|Running and installing FreeCAD]].
</div>


Se non ricevi errori, hai finito. '''Congratulazioni!''' Puoi uscire da MSVC o tenerlo aperto.
Se non ricevi errori, hai finito. '''Congratulazioni!''' Puoi uscire da MSVC o tenerlo aperto.


'''Importante:''' A partire da Visual Studio 17.4 non è possibile utilizzare l'ottimizzazione del codice attiva per impostazione predefinita per il target '''SketcherGui'''. In tal caso, i vincoli angolari verranno posizionati in modo errato negli schizzi. Per risolvere questo problema, fare clic con il pulsante destro del mouse su questo target in Esplora soluzioni MSVC e selezionare l'ultima voce '''Proprietà''' nel menu contestuale. Nella finestra di dialogo che appare andare su C/C++ → Ottimizzazione e disabilitare l'impostazione '''Ottimizzazione'''. Infine costruire di nuovo il target '''ALL_BUILD'''.
'''Note:''' FreeCAD 0.20 requires at least the C++ language standard version 17 but the 3rd-party component ''flann'' from the LibPack is not yet ready for this. Therefore you will get compilation errors for the target ''ReverseEngineering''. To fix this, right-click on this target in the MSVC solution explorer and select in the context menu the last entry ''Properties''. In the appearing dialog change the '''C++ Language Standard''' to '''ISO C++14'''. Finally build the target '''ALL_BUILD''' again.


<span id="Debug_Build"></span>
==== Debug Build ====
==== Compilazione di Debug ====


For a debug build it is necessary that the Python is used that is included in the LibPack. To assure this:
Per una compilazione di debug è necessario utilizzare Python incluso nel LibPack. Per verificarlo:
# Search in the CMake GUI for "Python"
# Cercare "Python" nella GUI di CMake
# If you see there a path like ''C:/Program Files/Python38/python.exe'', CMake recognized the Python that is installed on your PC and not the one of the LibPack. In this case adapt these different Python settings in CMake to this (assuming the LibPack is in the folder ''D:\FreeCAD-build\FreeCADLibs_12.5.2_x64_VC17''):
# Se si nota un percorso come ''C:/Program Files/Python38/python.exe'', significa che CMake ha riconosciuto il Python, che è installato sul tuo PC, e non quello del LibPack. In questo caso adattare queste diverse impostazioni Python in CMake alle seguenti (assumendo che il LibPack si trovi nella cartella ''D:\FreeCAD-build\FreeCADLibs_12.5.2_x64_VC17''): [[File:CMake_Python_settings.png]]

[[File:CMake_Python_settings.png]]
Come prerequisito per la build di debug, devi fare questo:
# Copiare il contenuto della cartella LibPack ''bind'' nella cartella ''bin'' della cartella build di FreeCAD (sovrascrivere i file esistenti).
# Copiare il contenuto della cartella LibPack ''libd'' nella cartella ''lib'' della cartella build di FreeCAD.

Adesso puoi compilare:
# Avviare l'IDE di Visual Studio. Questo può essere fatto premendo il pulsante ''Apri progetto'' nella GUI di CMake o facendo doppio clic sul file ''FreeCAD.sln'', che si trova nella cartella di build.
# Nella barra degli strumenti dell'IDE MSVC assicurarsi di utilizzare per la prima compilazione ''Debug''.
# C'è una finestra chiamata ''Solution Explorer''. Elenca tutti i possibili obiettivi di compilazione. Per avviare una compilazione completa, fare clic con il pulsante destro del mouse sul target '''ALL_BUILD''' e scegliere '''Build''' nel menu contestuale.
Richiederà molto tempo.


Se non ci sono stati errori di compilazione e se le opzioni '''FREECAD_COPY_*''' menzionate nella [[#CMake|Fase di configurazione di CMake]] sopra sono state abilitate, si può avviare la build di debug:
Now
# Fare clic con il pulsante destro del mouse sull'obiettivo '''FreeCADMain''' e scegliere '''Set as Startup Project''' nel menu contestuale.
# Start the Visual Studio IDE. This can either be done by pressing the button ''Open Project'' in the CMake GUI or by double-clicking on the file ''FreeCAD.sln'' that you find in your build folder.
# Infine fare clic sulla barra degli strumenti sul pulsante con il triangolo verde indicato '''Local Windows Debugger'''.
# In the toolbar of the MSVC IDE assure that you use for the first compilation ''Debug''.
# There is a window called ''Solution Explorer''. It lists all possible compilation targets. To start a full compilation, right-click on the target '''ALL_BUILD''' and then choose '''Build''' in the context menu.
This will now take quite a long time.
If there were no compilation errors, you can start the debug build:
# Right-click on the target '''FreeCADMain''' and then choose '''Set as Startup Project''' in the context menu.
# Finally click in the toolbar on the button with the green triangle named '''Local Windows Debugger'''.


This will start the debug build of FreeCAD and you can use the MSVC IDE to debug it.
Questo avvierà la build di debug di FreeCAD ed è possibile utilizzare l'IDE MSVC per eseguirne il debug.


==== Video Resource ====
==== Risorse video ====
An English language tutorial that begins with configuration in CMake Gui and continues to the `Build` command in Visual Studio 16 2019 is available unlisted on YouTube at [https://youtu.be/s4pHvlDOSZQ Tutorial: Build FreeCAD from source on Windows 10].
Un tutorial in lingua inglese che inizia con la configurazione in CMake Gui e continua con il comando `Build` in Visual Studio 16 2019 è disponibile unlisted su YouTube all'indirizzo [https://youtu.be/s4pHvlDOSZQ Tutorial: Build FreeCAD from source on Windows 10] .
</div>
</div>
</div>
</div>
<div class="mw-collapsible mw-collapsed toccolours">
<div class="mw-collapsible mw-collapsed toccolours">


<span id="Building_with_Qt_Creator_(outdated)"></span>
=== Costruire con Qt Creator (obsoleto)===
===Compilazione con Qt Creator (obsoleto)===


<div class="mw-collapsible-content">
<div class="mw-collapsible-content">


<span id="Installation_and_configuration_of_Qt_Creator"></span>
==== Installazione e configurazione di Qt Creator ====
==== Installazione e configurazione di Qt Creator ====


* Scarica e installa [https://www.qt.io/offline-installers Qt Creator]
* Scaricare e installare [https://www.qt.io/offline-installers Qt Creator]
* Strumenti → Opzioni → Editor di testo → scheda Comportamento:
* Strumenti → Opzioni → Editor di testo → scheda Comportamento:
** Codifica dei file → Codifiche predefinite:
** Codifica dei file → Codifiche predefinite:
Line 233: Line 253:
* Strumenti → Opzioni → Crea ed esegui:
* Strumenti → Opzioni → Crea ed esegui:
** Scheda CMake
** Scheda CMake
*** Riempi la casella Eseguibile con il percorso di cmake.exe
*** Riempire la casella Eseguibile con il percorso di cmake.exe
** Scheda Kit
** Scheda Kit
*** Nome: MSVC 2008
*** Nome: MSVC 2008
Line 243: Line 263:
*** Deselezionare: distribuire sempre il progetto prima di eseguirlo
*** Deselezionare: distribuire sempre il progetto prima di eseguirlo


<span id="Import_project_and_building"></span>
==== Importa progetto e crea ====
==== Importare e creare il progetto ====


* File → Apri file o progetto
* File → Apri file o progetto
* Apri '''CMakeLists.txt''' che si trova nel livello più alto della fonte
* Aprire '''CMakeLists.txt''' che si trova nel livello più alto della fonte
* Questo avvierà CMake
* Questo avvierà CMake
* Scegli la cartella di costruzione e fai clic su Avanti
* Scegliere la cartella di costruzione e fare clic su Avanti
* Imposta generatore su '''NMake Generator (MSVC 2008)'''
* Impostare il generatore su '''NMake Generator (MSVC 2008)'''
* Clicca Esegui CMake. Segui le istruzioni illustrate sopra per configurare CMake a tuo piacimento.
* Cliccare Esegui CMake. Seguire le istruzioni illustrate sopra per configurare CMake a tuo piacimento.


Ora è possibile creare FreeCAD
Ora è possibile creare FreeCAD
Line 257: Line 278:


Una volta completato, può essere eseguito:
Una volta completato, può essere eseguito:
Ci sono 2 triangoli verdi in basso a sinistra. Uno è il debug.
Ci sono 2 triangoli verdi in basso a sinistra. Uno è il debug. L'altro è l'eseguibile. Scegliere quello che si desidera.
L'altro è eseguito. Scegli quello che vuoi.
</div>
</div>
</div>
</div>
<div class="mw-collapsible mw-collapsed toccolours">
<div class="mw-collapsible mw-collapsed toccolours">


<span id="Command_line_build"></span>
=== Configurazione della riga di comando ===
=== Compilazione dalla riga di comando ===


<div class="mw-collapsible-content">
<div class="mw-collapsible-content">


<div class="mw-translate-fuzzy">
I passaggi su come compilare dalla riga di comando dipendono dal compilatore. Per MSVC 2017 i passaggi sono:
I passaggi su come compilare dalla riga di comando dipendono dal compilatore. Per MSVC 2017 i passaggi sono:
# Nel menu Start di Windows vai a {{MenuCommand|Visual Studio 2017 → Visual Studio Tools}} e scegli '''Prompt dei comandi per sviluppatori per VS 2017'''
# Nel menu Start di Windows andare a {{MenuCommand|Visual Studio 2017 → Visual Studio Tools}} e scegliere '''Prompt dei comandi per sviluppatori per VS 2017'''
# Passa alla tua cartella di build.
# Passare alla tua cartella di build.
# Eseguire il comando
# Eseguire il comando
</div>


{{Code|code=msbuild ALL_BUILD.vcxproj /p:Configuration=Release}}
{{Code|code=msbuild ALL_BUILD.vcxproj /p:Configuration=Release}}
Line 280: Line 299:
{{Code|code=msbuild INSTALL.vcxproj /p:Configuration=Release}}
{{Code|code=msbuild INSTALL.vcxproj /p:Configuration=Release}}


<div class="mw-translate-fuzzy">
Questi passaggi possono anche essere automatizzati. Ecco ad esempio una soluzione per MSVC 2017:
Questi passaggi possono anche essere automatizzati. Ecco ad esempio una soluzione per MSVC 2017:
# Scarica lo script [https://forum.freecadweb.org/download/file.php?id=92135 compile-FC.txt].
# Scaricare lo script [https://forum.freecadweb.org/download/file.php?id=92135 compile-FC.txt].
# Rinominalo in ''compile-FC.bat''
# Rinominarlo in ''compile-FC.bat''
# In Esplora file Shift di Winddows + Fare clic con il tasto destro del mouse sulla cartella di creazione e utilizzare dal menu di scelta rapida "Prompt dei comandi qui".
# In Esplora file di Windows fare Shift + Click con il tasto destro del mouse sulla cartella di build e utilizzare dal menu di scelta rapida "Command prompt here".
# Eseguire il comando
# Eseguire il comando
</div>


{{Code|code=compile-FC install}}
{{Code|code=compile-FC install}}


Invece di chiamare '''compile-FC''' con l'opzione ''installa'' puoi anche usare ''debug'' o ''release'':
Invece di chiamare '''compile-FC''' con l'opzione ''install'' si può anche usare ''debug'' o ''release'':


''debug'' &nbsp; - compila FreeCAD nella configurazione di debug
''debug'' &nbsp; - compila FreeCAD nella configurazione di debug


''release'' - compilare FreeCAD nella configurazione della versione
''release'' - compila FreeCAD nella configurazione della versione


''install'' &nbsp;&nbsp; - compilare FreeCAD nella configurazione di rilascio e creare un'installazione di installazione
''install'' &nbsp;&nbsp; - compila FreeCAD nella configurazione di rilascio e crea una versione d'installazione


</div>
</div>
</div>
</div>


<span id="Running_and_installing_FreeCAD"></span>
==Esecuzione e installazione di FreeCAD==
==Esecuzione e installazione di FreeCAD==


Esistono 2 metodi per eseguire FreeCAD compilato:
Esistono 2 metodi per eseguire FreeCAD compilato:


''Metodo 1'': Esegui FreeCAD.exe che trovi nella cartella di compilazione nella sottocartella ''bin''
''Metodo 1'': Eseguire FreeCAD.exe che si trova nella cartella di compilazione nella sottocartella ''bin''


''Metodo 2'': costruisci il target ''INSTALL''
''Metodo 2'': compilare il target ''INSTALL''


Il metodo 2 è quello più semplice perché assicura automaticamente che tutte le librerie necessarie per eseguire FreeCAD.exe siano nella cartella corretta. FreeCAD.exe e le librerie verranno emessi nella cartella specificata nella variabile CMake''CMAKE_INSTALL_PREFIX''.
Il metodo 2 è quello più semplice, perché assicura automaticamente che tutte le librerie necessarie per eseguire FreeCAD.exe siano nella cartella corretta. FreeCAD.exe e le librerie verranno emessi nella cartella specificata nella variabile CMake ''CMAKE_INSTALL_PREFIX''.


Per il Metodo 1 devi mettere le librerie nella cartella ''bin'' della tua cartella di build (dove si trova FreeCAD.exe). Questo può essere fatto facilmente:
Per il Metodo 1 devi abilitare le opzioni '''FREECAD_COPY_*''' menzionate nella [[#CMake|Fase di configurazione di CMake]] sopra.
# Apri la GUI di CMake.
# Cerca lì l'opzione variabile ''FREECAD_COPY_DEPEND_DIRS_TO_BUILD'' e controllala. Se non esiste tale opzione, le librerie sono già state copiate, vedere la [[Compile_on_Windows/it#Opzioni_per_il_processo_di_compilazione|descrizione delle opzioni]]
# Cerca lì l'opzione variabile ''FREECAD_COPY_LIBPACK_BIN_TO_BUILD'' e controllala.
# Cerca lì l'opzione variabile "FREECAD_COPY_PLUGINS_BIN_TO_BUILD" e controllala.
# Fare clic su '''Configura'''. Al termine della configurazione CMake copierà automaticamente le librerie necessarie dalla cartella LibPack.


===Troubleshooting===
<span id="Troubleshooting"></span>
===Risoluzione dei problemi===


Durante l'esecuzione di FreeCAD è possibile riscontrare DLL mancanti quando si utilizzano determinati ambienti di lavoro o funzionalità di ambienti di lavoro. Il messaggio di errore nella console di FreeCAD non ti dirà quale DLL manca. Per scoprirlo è necessario utilizzare uno strumento esterno:
When running FreeCAD you may encounter missing DLLs when using certain workbenches or features of workbenches. The error message in FreeCAD's console will not tell you what DLL is missing. To find this out you must use an external tool:


* Download the latest release of the program '''Dependencies''': https://github.com/lucasg/Dependencies/releases (choose the file ''Dependencies_x64_Release.zip'')
* Scaricare l'ultima versione del programma '''Dependencies''': https://github.com/lucasg/Dependencies/releases (scegliere il file ''Dependencies_x64_Release.zip'')
* In the FreeCAD [[Python console]] execute these commands:
* Nella [[console Python]] di FreeCAD eseguire questi comandi:
<nowiki>import os
<nowiki>import os
os.system(r"~\DependenciesGui.exe")</nowiki>
os.system(r"~\DependenciesGui.exe")</nowiki>
'''Note''': Instead of the ~ you must specify the full path to the ''DependenciesGui.exe'' on your system.
'''Nota''': invece di ~ si deve specificare il percorso completo di ''DependenciesGui.exe'' sul tuo sistema.
* Now drag in the *.pyd file of the workbench with which you get missing DLLs reported.
* Ora trascinare il file *.pyd del workbench con il quale si ottengono le DLL mancanti segnalate.


<span id="Updating_the_build"></span>
==Aggiornamento della build==
==Aggiornamento della compilazione==


FreeCAD è sviluppato molto attivamente. Pertanto il suo codice sorgente cambia quasi quotidianamente. Nuove funzionalità vengono aggiunte e i bug corretti. Per beneficiare di queste modifiche al codice sorgente, è necessario ricostruire FreeCAD. Questo avviene in due fasi:
FreeCAD è sviluppato molto attivamente. Pertanto il suo codice sorgente cambia quasi quotidianamente. Nuove funzionalità vengono aggiunte e i bug corretti. Per beneficiare di queste modifiche al codice sorgente, è necessario ricompilare FreeCAD. Questo avviene in due fasi:
# Aggiornamento del codice sorgente
# Aggiornamento del codice sorgente
# Ricompilazione
# Ricompilazione


<span id="Updating_the_source_code"></span>
===Aggiornamento del codice sorgente===
===Aggiornamento del codice sorgente===


<span id="Using_a_frontend"></span>
====Usando un frontend====
====Usando un frontend====


Quando si utilizza il [https://en.wikipedia.org/wiki/Comparison_of_Git_GUIs Git frontend] TortoiseGit:
Quando si utilizza il [https://en.wikipedia.org/wiki/Comparison_of_Git_GUIs frontend di Git] TortoiseGit:
# Fare clic con il tasto destro del mouse sulla cartella del codice sorgente di FreeCAD in Esplora file di Windows e selezionare nel menu di scelta rapida '''Pull' ''.
# Fare clic con il tasto destro del mouse sulla cartella del codice sorgente di FreeCAD in Esplora file di Windows e selezionare nel menu di scelta rapida '''Pull' ''.
# Apparirà una finestra di dialogo. Seleziona lì quale ramo di sviluppo vuoi ottenere. '''master''' è il ramo principale. Pertanto utilizzare questo a meno che non si desideri compilare una nuova funzionalità speciale da un ramo che non è stato ancora unito a "master". (Per ulteriori informazioni sui rami Git, vedere [[Source_code_management#Git_development_process|Git development process]].)
# Apparirà una finestra di dialogo. Selezionare quale ramo di sviluppo vuoi utilizzare. '''master''' è il ramo principale. Pertanto utilizzare questo a meno che non si desideri compilare una nuova funzionalità speciale da un ramo che non è stato ancora unito a "master". (Per ulteriori informazioni sui rami Git, vedere [[Source_code_management/it#Processo_di_sviluppo_Git|Processo di sviluppo Git]]).


Finalmente clicca '''OK'''.
Finalmente cliccare su '''OK'''.


<span id="Using_the_command_line"></span>
====Utilizzando la riga di comando====
====Utilizzando la riga di comando====


Apri un terminale (prompt dei comandi) e passa alla directory di origine. Quindi digitare:
Aprire un terminale (prompt dei comandi) e passare alla cartella di origine. Quindi digitare:


{{Code|code=
{{Code|code=
Line 353: Line 371:
}}
}}


dove ''master'' è il nome del ramo di sviluppo principale. Se vuoi ottenere il codice da un altro ramo, usa il suo nome invece di ''master''.
dove ''master'' è il nome del ramo di sviluppo principale. Se si vuole ottenere il codice da un altro ramo, usare il suo nome invece di ''master''.


<span id="Recompilation"></span>
===Ricompilazione===
===Ricompilazione===


# Aprire l'IDE MSVC facendo doppio clic sul file ''FreeCAD.sln'' o sul file ''ALL_BUILD.vcxproj'' nella cartella di compilazione.
<div class="mw-translate-fuzzy">
# Continuare con il passaggio 2 dalla sezione [[#Compilazione_con_Visual_Studio_15_(2017)_e_successive|Compilazione con Visual Studio 15 (2017) e successive]].
# Apri l'IDE MSVC facendo doppio clic sul file ''FreeCAD.sln'' o sul file ''ALL_BUILD.vcxproj'' nella cartella di compilazione.
# Continua con il passaggio 2 dalla sezione[[#Building_with_Visual_Studio_15_2017|Building with Visual Studio 15 2017]].
</div>


<span id="Updating_the_LibPack"></span>
==Aggiornamento del Libpack==
==Aggiornamento del Libpack==


If a new major version of a third-party dependency like Open Cascade is released, or if a third-party dependency has important bug fixes, a new LibPack is released. You can find the latest version [https://github.com/FreeCAD/FreeCAD-LibPack/releases/ here].
Se viene rilasciata una nuova versione principale di una dipendenza di terze parti come Open Cascade o se una dipendenza di terze parti ha importanti correzioni di bug, viene rilasciato un nuovo LibPack. Si può trovare l'ultima versione [https://github.com/FreeCAD/FreeCAD-LibPack/releases/ qui].


To update your LibPack the following recipe is best practice:
Per aggiornare il tuo LibPack, la seguente procedura è la pratica migliore:
# Delete the ''bin'' folder in your build folder.
# Eliminare la cartella ''bin'' nella tua cartella di compilazione.
# Switch to your local LibPack folder and delete everything there.
# Passare alla tua cartella LibPack locale ed eliminare tutto il contenuto.
# Extract the content of the new LibPack ZIP file into the existing, but now empty, local LibPack folder.
# Estrarre il contenuto del nuovo file ZIP LibPack nella cartella LibPack locale esistente, che ora è vuota.
# Open CMake and there press the button '''Configure''' and then the button '''Generate'''. This recreates the ''bin'' folder you just deleted and also copies the new LibPack files into it.
# Aprire CMake e premere il pulsante '''Configure''' e poi il pulsante '''Generate'''. Questo ricrea la cartella ''bin'' appena eliminata e vi copia anche i nuovi file LibPack.
# In CMake click the button '''Open Project''' and the MSVC IDE will open.
# In CMake fare clic sul pulsante '''Open Project''' e si aprirà l'IDE MSVC.
# In the MSVC IDE build the target ''INSTALL''.
# Nell'IDE MSVC creare la destinazione ''INSTALL''.


==Tools==
<span id="Tools"></span>
==Strumenti==


Per partecipare allo sviluppo di FreeCAD è necessario compilare e installare i seguenti strumenti:
In order to join the FreeCAD development you should compile and install the following tools:


<span id="Qt_Designer_plugin"></span>
===Qt Designer plugin===
===Plugin di Qt Designer===


FreeCAD uses [https://en.wikipedia.org/wiki/Qt_(software) Qt] as toolkit for its user interface. All dialogs are setup in UI-files that can be edited using the program [https://doc.qt.io/qt-5/qtdesigner-manual.html Qt Designer] that is part of any Qt installation and also included in the LibPack. FreeCAD has its own set of Qt widgets to provide special features like adding a unit to input fields and to set preferences properties.
FreeCAD usa [https://en.wikipedia.org/wiki/Qt_(software) Qt] come toolkit per la sua interfaccia utente. Tutte le finestre di dialogo sono impostate in file UI che possono essere modificati utilizzando il programma [https://doc.qt.io/qt-5/qtdesigner-manual.html Qt Designer] che fa parte di qualsiasi installazione di Qt ed è anche incluso nel LibPack. FreeCAD ha il proprio set di widget Qt per fornire funzionalità speciali come l'aggiunta di un'unità ai campi di input e per impostare le proprietà delle preferenze.


====Compilation====
<span id="Compilation"></span>
====Compilazione====


The plugin cannot be loaded by the Qt Designer if it was compiled using another Qt version than the one your Qt Designer/Qt Creator is based on. Therefore the plugin must be compiled together with FreeCAD:
Il plugin non può essere caricato da Qt Designer se è stato compilato utilizzando una versione di Qt diversa da quella su cui si basa Qt Designer/Qt Creator. Pertanto il plugin deve essere compilato insieme a FreeCAD:


* In the CMake options (see [[Compile_on_Windows#Options_for_the_build_process|this section above]]) enable the option BUILD_DESIGNER_PLUGIN and reconfigure.
* Nelle opzioni di CMake (vedere [[#Opzioni_per_il_processo_di_compilazione|questa sezione sopra]]) abilitare l'opzione BUILD_DESIGNER_PLUGIN e riconfigurare.
* open MSVC and build the target '''FreeCAD_widgets'''
* aprire MSVC e creare il target '''FreeCAD_widgets'''


As result you will get the plugin file '''FreeCAD_widgets.dll'' in the folder</br>''~\src\Tools\plugins\widget\Release''
Come risultato si otterrà il file del plugin '''FreeCAD_widgets.dll'' nella cartella</br>''~\src\Tools\plugins\widget\Release''


====Installation====
<span id="Installation"></span>
====Installazione====


To install the plugin, copy it to either:
Per installare il plugin, copia la DLL in
* Se si usa il LibPack: nella cartella</br>''~\FreeCADLibs_2_8_x64_VC2019\plugins\designer''
* If you use the LibPack: to the folder</br>''~\FreeCADLibs_12.5.4_x64_VC17\bin\designer''</br>Since there will only be a ''bin'' folder and you must first create the ''designer'' subfolder.
* If you have a full Qt installation: you can choose between the folder</br>''C:\Qt\5.15.2\msvc2019_64\plugins\designer''</br>or</br>''C:\Qt\5.15.2\msvc2019_64\bin\designer'' (you must first create the ''designer'' subfolder.)</br>(adapt the paths to your installation!).
* Se si ha un'installazione Qt completa: si può scegliere tra la cartella</br>''C:\Qt\5.15.2\msvc2019_64\plugins\designer''</br>o</br>''C: \Qt\5.15.2\msvc2019_64\bin\designer'' (si deve prima creare la sottocartella ''designer''.)</br>(adattare i percorsi alla propria installazione!).


Finally (re)start Qt Designer and check its menu {{MenuCommand|Help → Plugins}}. If the plugin '''FreeCAD_widgets.dll''' is listed as being loaded, you can now design and change FreeCAD's .ui files. If not, you must [[#Compilation|compile]] the DLL by yourself.
Infine (ri)avviare Qt Designer e controllare il suo menu {{MenuCommand|Help → Plugins}}. Se il plugin '''FreeCAD_widgets.dll''' è elencato come caricato, ora si può progettare e modificare i file .ui di FreeCAD. In caso contrario, si deve [[#Compilare_FreeCAD|compilare]] la DLL da se.


If you prefer using [https://en.wikipedia.org/wiki/Qt_Creator Qt Creator] instead of Qt Designer, the plugin file must be placed in this folder:</br>''C:\Qt\Qt5.15.2\Tools\QtCreator\bin\plugins\designer''</br>Then (re)start Qt Creator, switch to the mode '''Design''' and then check the menu {{MenuCommand|Tools → Form Editor → About Qt Designer Plugins}}. If the plugin '''FreeCAD_widgets.dll''' is listed as being loaded, you can now design and change FreeCAD's .ui files. If not, you must [[#Compilation|compile]] the DLL by yourself.
Se si preferisce usare [https://en.wikipedia.org/wiki/Qt_Creator Qt Creator] invece di Qt Designer, il file del plugin deve essere posizionato in questa cartella:</br>''C:\Qt\Qt5.15.2 \Tools\QtCreator\bin\plugins\designer''</br>Quindi (ri)avviare Qt Creator, passare alla modalità '''Design''' e controllare il menu {{MenuCommand|Tools → Form Editor → About Qt Designer Plugins}}. Se il plugin '''FreeCAD_widgets.dll''' è elencato tra quelli caricati, si può progettare e modificare i file .ui di FreeCAD. In caso contrario, ci si deve [[#Compilare_FreeCAD|compilare]] la DLL.


<span id="Thumbnail_Provider"></span>
===Thumbnail Provider===
===Creatore di miniature===


FreeCAD has the feature to provide preview thumbnails for *.FCStd files. That means that in the Windows file explorer *.FCStd files are shown with a screenshot of the model it contains. To provide this feature, FreeCAD needs to have the file '''FCStdThumbnail.dll''' installed to Windows.
FreeCAD ha la funzionalità per fornire miniature di anteprima per i file *.FCStd. Ciò significa, che nel file explorer di Windows i file *.FCStd, sono mostrati con uno screenshot del modello che contiene. Per fornire questa funzionalità, FreeCAD deve avere il file '''FCStdThumbnail.dll''' installato in Windows.


====Installation====
<span id="Installation"></span>
====Installazione====


The DLL is installed this way:
La DLL viene installata in questo modo:
# Download [https://forum.freecadweb.org/download/file.php?id=13404 this ZIP file] and extract it.
# Scaricare [https://forum.freecadweb.org/download/file.php?id=13404 questo file ZIP] ed estrarlo.
# Aprire un prompt dei comandi di Windows con privilegi di amministratore (questi privilegi sono un requisito).
# Open a Windows command prompt with administrator privileges (these privileges are a requirement).
# Passare alla cartella in cui si trova la DLL.
# Change to the folder where the DLL is.
# Execute this command {{Code|code=regsvr32 FCStdThumbnail.dll}}
# Eseguire questo comando {{Code|code=regsvr32 FCStdThumbnail.dll}}


So check if it works, assure that in FreeCAD the preferences option '''[[Preferences_Editor#Document|Save thumbnail into project file when saving document]]''' is enabled and save a model. Then view in Windows Explorer the folder of the saved model using a symbol view. You should now see a screenshot of the model in the folder view.
Quindi controllare se funziona, assicurarsi che in FreeCAD l'opzione delle preferenze '''[[Preferences_Editor/it#Documento|Salva la miniatura nel file di progetto al salvataggio del documento]]''' sia abilitata e salvare il modello. Quindi visualizzare in Windows Explorer la cartella del modello salvato utilizzando una vista simboli. Ora si dovrebbe vedere uno screenshot del modello nella vista delle cartelle.


====Compilation====
<span id="Compilation"></span>
====Compilazione====


To compile the FCStdThumbnail.dll
Per compilare FCStdThumbnail.dll
# Change to the FreeCAD source folder</br>''~\src\Tools\thumbs\ThumbnailProvider''
# Passare alla cartella sorgente di FreeCAD</br>''~\src\Tools\thumbs\ThumbnailProvider''
# Open the CMake GUI
# Aprire la GUI di CMake
# Specificare come cartella di origine quella in cui ci si trova attualmente.
# Specify there as source folder the one you are currently in.
# Usare la stessa cartella della cartella build.
# Use the same folder as build folder.
# Click '''Configure'''
# Fare clic su '''Configure'''
# In the appearing dialog, specify the generator according to the one you want to use. For the standard MS Visual Studio use ''Visual Studio xx 2yyy'' where xx is the compiler version and 2yyy the year of its release. It is recommended to use the default option ''Use default native compilers''.</br>'''Note:''' It is important to specify the correct bit variant. If you have the 64bit variant of LibPack you must also use the x64 compiler.
# Nella finestra di dialogo che appare, specificare il generatore in base a quello che si vuole usare. Per lo standard MS Visual Studio utilizzare ''Visual Studio xx 2yyy'' dove xx è la versione del compilatore e 2yyy l'anno del suo rilascio. Si consiglia di utilizzare l'opzione predefinita ''Use default native compilers''.</br>'''Nota:''' È importante specificare la variante col numero di bit corretta. Se si ha la variante a 64 bit di LibPack si deve usare anche il compilatore x64.
# Click on '''Generate'''.
# Cliccare su '''Generate'''.
# You should now have the file '''ALL_BUILD.vcxproj''' in the folder ''~\src\Tools\thumbs\ThumbnailProvider''. Double-click on it and the MSVC IDE will open.
# Ora si dovrebbe avere il file '''ALL_BUILD.vcxproj''' nella cartella ''~\src\Tools\thumbs\ThumbnailProvider''. Fare doppio clic su di esso e si aprirà l'IDE MSVC.
# In the toolbar of the MSVC IDE assure that you use the compilation target ''Release''.
# Nella barra degli strumenti dell'IDE MSVC assicurarsi di utilizzare l'obiettivo di compilazione ''Release''.
# There is a window called ''Solution Explorer''. Right-click there on '''ALL_BUILD''' and then choose '''Build'''.
# C'è una finestra chiamata ''Solution Explorer''. Fare clic destro su '''ALL_BUILD''' e poi sceglire '''Build'''.
# As result you should now have a '''FCStdThumbnail.dll''' in the folder ''~\src\Tools\thumbs\ThumbnailProvider\release'' that you can install as described above.
# Come risultato ora si dovrebbe avere un '''FCStdThumbnail.dll''' nella cartella ''~\src\Tools\thumbs\ThumbnailProvider\release'', che si può installare come descritto sopra.


<span id="Compiling_Open_Cascade"></span>
== Compiling Open Cascade==
== Compilazione di Open Cascade==


The LibPack comes with a version of [https://en.wikipedia.org/wiki/Open_Cascade Open Cascade] that is suitable for general use. However, under some circumstances you may wish to compile against an alternate version of Open Cascade, such as one of their official releases, or a patched fork.
Il LibPack viene fornito con una versione di [https://en.wikipedia.org/wiki/Open_Cascade Open Cascade] adatta all'uso generale. Tuttavia, in alcune circostanze potresti voler compilare con una versione alternativa di Open Cascade, come ad esempio una delle loro versioni ufficiali o un fork con patch.


When compiling Open Cascade for FreeCAD note that there is no guarantee that FreeCAD will work with all versions of Open Cascade. Note also that when you are using the Netgen library, you must use the a NetGen version that it approved to compile with the Open Cascade version you like to compile.
Durante la compilazione di Open Cascade per FreeCAD, si tenga presente che non vi è alcuna garanzia che FreeCAD funzioni con tutte le versioni di Open Cascade. Si noti inoltre che quando si utilizza la libreria Netgen, è necessario utilizzare una versione NetGen approvata per la compilazione con la versione Open Cascade che si desidera compilare.


Compilare:
To compile:
* First obtain the Open Cascade source code, either directly from [https://github.com/Open-Cascade-SAS/OCCT Open Cascade's git repository] or by cloning someone else's fork, such as [https://gitlab.com/blobfish/occt the "blobfish" fork] maintained by FreeCAD forum member [https://forum.freecadweb.org/memberlist.php?mode=viewprofile&u=208 tanderson69].
* Per prima cosa si deve ottienere il codice sorgente di Open Cascade, direttamente dal [https://github.com/Open-Cascade-SAS/OCCT repository git di Open Cascade] o clonando il fork di qualcun altro, come ad esempio il [https://gitlab.com/blobfish/occt fork "blobfish"] gestito dal membro del forum di FreeCAD [https://forum.freecadweb.org/memberlist.php?mode=viewprofile&u=208 tanderson69].


* Then open the CMake GUI to configure the build system in a similar manner to building FreeCAD. These CMake options have to be set (or explicitly not set):
* Quindi aprire la GUI di CMake per configurare il sistema di compilazione in modo simile alla creazione di FreeCAD. Queste opzioni di CMake devono essere impostate (o esplicitamente non impostate):
{| class="wikitable" style="text-align:left"
{| class="wikitable" style="text-align:left"
|-
|-
! Variable name !! Description !! Default
! Nome Variabile !! Descrizione !! Valore di Default
|-
|-
| 3RDPARTY_DIR|| The path to 3rdparty components. It is recommended to use the folder as input where your used LibPack is. Explicitly leave this field empty.
| 3RDPARTY_DIR|| Percorso verso i componenti di terze parti. Si consiglia di utilizzare la cartella come input in cui si trova il LibPack utilizzato. Lasciare esplicitamente vuoto questo campo.|| vuoto
|| empty
|-
|-
| 3RDPARTY_DOXYGEN_EXECUTABLE|| The path to the executable of the 3rdparty component [https://en.wikipedia.org/wiki/Doxygen Doxygen]. It is recommended to install Doxygen. CMake will then find it automatically.
| 3RDPARTY_DOXYGEN_EXECUTABLE|| Percorso dell'eseguibile del componente di terze parti [https://en.wikipedia.org/wiki/Doxygen Doxygen]. Si consiglia di installare Doxygen. Così CMake lo troverà automaticamente.|| vuoto
|| empty
|-
|-
| 3RDPARTY_FREETYPE_DIR|| The path to the necessary 3rdparty component [https://en.wikipedia.org/wiki/FreeType Freetype]. It is recommended to use the folder as input where your used LibPack is.
| 3RDPARTY_FREETYPE_DIR|| Percorso del componente di terze parti necessario [https://en.wikipedia.org/wiki/FreeType Freetype]. Si consiglia di utilizzare la cartella come input in cui si trova il LibPack utilizzato.|| vuoto
|| empty
|-
|-
| 3RDPARTY_RAPIDJSON_DIR|| Only available if '''USE_RAPIDJSON''' is used. The path to the 3rdparty component [https://rapidjson.org/ RapidJSON]. It is recommended NOT to use an existing LibPack folder as input. You can use the RapidJSOn folder from a LibPack, but copy it to a new folder and use this new folder as input.
| 3RDPARTY_RAPIDJSON_DIR|| Disponibile solo se viene utilizzato '''USE_RAPIDJSON'''. Percorso del componente di terze parti [https://rapidjson.org/ RapidJSON]. Si consiglia di NON utilizzare una cartella LibPack esistente come input. Si può usare la cartella RapidJSOn da un LibPack, ma copiata in una nuova cartella e poi usare questa nuova cartella come input.|| vuoto
|| empty
|-
|-
| 3RDPARTY_TCL_DIR|| The path to the necessary 3rdparty component [https://en.wikipedia.org/wiki/Tcl TCL]. It is recommended NOT to use an existing LibPack folder as input. Take for example one of [https://github.com/teclab-at/tcltk/releases these releases], extract it and take this as input folder for CMake.
| 3RDPARTY_TCL_DIR|| Percorso al componente di terze parti necessario [https://it.wikipedia.org/wiki/Tcl TCL]. Si consiglia di NON utilizzare una cartella LibPack esistente come input. Prendere ad esempio una di [https://github.com/teclab-at/tcltk/releases queste versioni], estrarla e prenderla come cartella di input per CMake.|| vuoto
|| empty
|-
|-
| 3RDPARTY_TK_DIR|| The path to the necessary 3rdparty component [https://en.wikipedia.org/wiki/Tk_(software) TK]. It is recommended NOT to use an existing LibPack folder as input. Take for example one of [https://github.com/teclab-at/tcltk/releases these releases], extract it and take this as input folder for CMake.
| 3RDPARTY_TK_DIR|| Percorso del componente di terze parti necessario [https://en.wikipedia.org/wiki/Tk_(software) TK]. Si consiglia di NON utilizzare una cartella LibPack esistente come input. Prendere ad esempio una di [https://github.com/teclab-at/tcltk/releases queste versioni], estrarla e prenderla come cartella di input per CMake.|| vuoto
|| empty
|-
|-
| 3RDPARTY_VTK_DIR|| Only available if '''USE_VTK''' is used. The path to the necessary 3rdparty component [https://en.wikipedia.org/wiki/VTK VTK]. It is recommended to use the folder as input where your used LibPack is. If you use another folder please assure that you don't use VTK 9.x or newer.
| 3RDPARTY_VTK_DIR|| Disponibile solo se viene utilizzato '''USE_VTK'''. Percorso del componente di terze parti necessario [https://en.wikipedia.org/wiki/VTK VTK]. Si consiglia di utilizzare la cartella come input in cui si trova il LibPack utilizzato. Se si utilizza un'altra cartella, assicurarsi di non utilizzare VTK 9.x o versioni successive.|| vuoto
|| empty
|-
|-
| BUILD_RELEASE_DISABLE_EXCEPTIONS|| Disables exception handling for release builds. For FreeCAD you must set it to '''OFF'''.
| BUILD_RELEASE_DISABLE_EXCEPTIONS|| Disabilita la gestione delle eccezioni per le build di rilascio. Per FreeCAD si deve impostarlo su '''OFF'''.|| ON
|| ON
|-
|-
| INSTALL_DIR|| The output folder when building the target ''INSTALL''. If the build was successful, take the files from this folder to update your LibPack.
| INSTALL_DIR|| Cartella di output durante la creazione della destinazione ''INSTALL''. Se la compilazione è andata a buon fine, prendere i file da questa cartella per aggiornare il tuo LibPack.
|| Cartella d'installazione predefinita del programma in Windows
|| Windows default program installation folder
|-
|-
| INSTALL_DIR_BIN|| The output subfolder for the DLL when building the target ''INSTALL''. You must change it to '''bin'''
| INSTALL_DIR_BIN|| Sottocartella di output per la DLL durante la creazione del target ''INSTALL''. Si deve cambiarlo in '''bin'''.|| win64/vc14/bin
|| win64/vc14/bin
|-
|-
| INSTALL_DIR_LIB|| The output subfolder for the .lib files when building the target ''INSTALL''. You must change it to '''lib'''
| INSTALL_DIR_LIB|| Sottocartella di output per i file .lib durante la creazione della destinazione ''INSTALL''. Si deve cambiarlo in '''lib'''.|| win64/vc14/lib
|| win64/vc14/lib
|-
|-
| USE_RAPIDJSON|| To compile Open Cascade with support for RapidJSON. Enabling this is mandatory in order to get support for the file format [https://en.wikipedia.org/wiki/Gltf glTF].
| USE_RAPIDJSON|| Per compilare Open Cascade con supporto per RapidJSON. L'abilitazione è obbligatoria per ottenere supporto per il formato file [https://en.wikipedia.org/wiki/Gltf glTF].|| OFF
|| OFF
|-
|-
| USE_VTK|| To compile Open Cascade with support for VTK. Enabling this is optimal. You can use this to build Open Cascade's VTK bridge.
| USE_VTK|| Per compilare Open Cascade con supporto per VTK. Abilitare questo è ottimale. Si può usarlo per costruire il bridge VTK di Open Cascade.
|| OFF
|| OFF
|}
|}


* Open the project in Visual Studio and first build the ALL_BUILD and then INSTALL targets in the '''Release''' mode.
* Aprire il progetto in Visual Studio e per prima cosa creare i target ALL_BUILD e poi INSTALL in modalità '''Release'''.
* Repeat building the two targets in the '''Debug''' mode.
* Ripetere la creazione dei due target nella modalità '''Debug'''.


To build FreeCAD using the self-compiled Open Cascade, you must do the following:
Per creare FreeCAD, utilizzando Open Cascade autocompilato, è necessario eseguire le seguenti operazioni:
* Copy all folders from the INSTALL_DIR to your LibPack folder (overwrite the existing files)
* Copiare tutte le cartelle da INSTALL_DIR nella tua cartella LibPack (sovrascrivere i file esistenti)
* Switch to the LibPack folder and go there to the subfolder ''cmake''
* Passare alla cartella LibPack e andare alla sottocartella ''cmake''
* Open there the file ''OpenCASCADEDrawTargets.cmake'' with a text editor
* Aprire il file ''OpenCASCADEDrawTargets.cmake'' con un editor di testo
* Search there for absolute paths to your LibPack folder and remove them. So e.g. the absolute path</br>''D:/FreeCADLibs_12.5.4_x64_VC17/lib/freetype.lib''</br>becomes just </br>''freetype.lib''</br>
* Cercare i percorsi assoluti della tua cartella LibPack e rimuoverli. Quindi ad es. il percorso assoluto</br>''D:/FreeCADLibs_12.5.4_x64_VC17/lib/freetype.lib''</br>diventerà solo </br>''freetype.lib''</br>
* Do the same for the file ''OpenCASCADEVisualizationTargets.cmake''
* Fare lo stesso per il file ''OpenCASCADEVisualizationTargets.cmake''


<span id="Compiling_Netgen"></span>
== Compiling Netgen==
== Compilazione di Netgen==


The LibPack comes with a version of [https://ngsolve.org Netgen] that will was tested to be build with the Open Cascade version of the LibPack. The problem is that every new release of Netgen changes the API. Also every new release of Open Cascade does the same. Therefore one cannot just easily change the Netgen version.
Il LibPack viene fornito con una versione di [https://ngsolve.org Netgen] che sarà stata testata per essere compilata con la versione Open Cascade del LibPack. Il problema è che ogni nuova versione di Netgen cambia l'API. Anche ogni nuova versione di Open Cascade fa lo stesso. Pertanto non si può semplicemente cambiare in modo semplice la versione di Netgen.


Tuttavia, potresti comunque compliare Netgen. Questa è un'attività semplice:
However, you might build Netgen nevertheless. This is an easy task:


* First obtain the Netgen source code, either directly from [https://github.com/NGSolve/netgen Netgen 's git repository].
* Per prima cosa scaricare il codice sorgente di Netgen, direttamente dal repository git di [https://github.com/NGSolve/netgen Netgen].
* Then open the CMake GUI to configure the build system in a similar manner to building FreeCAD. These CMake options have to be set:
* Quindi aprire la GUI di CMake, per configurare il sistema di compilazione in modo simile alla creazione di FreeCAD. Devono essere impostate le seguenti opzioni di CMake :
{| class="wikitable" style="text-align:left"
{| class="wikitable" style="text-align:left"
|-
|-
! Variable name !! Description !! Default
! Nome Variabile !! Descrizione !! Valore di Default
|-
|-
| CMAKE_INSTALL_PREFIX|| The output folder when building the target ''INSTALL''. If the build was successful, take the files from this folder to update your LibPack.
| CMAKE_INSTALL_PREFIX|| Cartella di output durante la creazione della destinazione ''INSTALL''. Se la compilazione è andata a buon fine, prendere i file da questa cartella per aggiornare il tuo LibPack.
|| C:/netgen
|| C:/netgen
|-
|-
| OpenCasCade_DIR|| The path to the CMake files of Open Cascade. If you built Open Cascade as described in the section [[#Compiling_Open_Cascade|Compiling Open Cascade]] you can use the subfolder ''cmake'' of there folder you used as INSTALL_DIR. If not, use the subfolder ''cmake'' of your LibPack. Note hereby that the LibPack must then already contain a proper Open Cascade build. Independent what folder you use, you must now also create there a subfolder ''lib'' and copy in the files ''freetype.lib'' and ''freetyped.lib'' from your LibPack.
| OpenCasCade_DIR|| Percorso dei file CMake di Open Cascade. Se si è compilato Open Cascade come descritto nella sezione [[#Compilazione_di_Open_Cascade|Compilazione di Open Cascade]] si può usare la sottocartella ''cmake'' della cartella usata come INSTALL_DIR. In caso contrario, usare la sottocartella ''cmake'' del tuo LibPack. Si noti che il LibPack deve già contenere una corretta build Open Cascade. Indipendentemente dalla cartella utilizzata, si deve creare anche una sottocartella ''lib'' e copiarvi i file ''freetype.lib'' e ''freetyped.lib'' dal tuo LibPack.|| vuoto
|| empty
|-
|-
| USE_GUI|| set it to '''OFF'''
| USE_GUI|| Impostarlo a '''OFF'''
|| ON
|| ON
|-
|-
| USE_NATIVE_ARCH|| set it to '''OFF'''; this is only necessary important to support older CPU that don't have the [https://en.wikipedia.org/wiki/Advanced_Vector_Extensions AVX2] instruction set
| USE_NATIVE_ARCH|| Impostarlo su '''OFF'''; questo è necessario solo per supportare le CPU più vecchie che non hanno il set di istruzioni [https://en.wikipedia.org/wiki/Advanced_Vector_Extensions AVX2].
|| ON
|| ON
|-
|-
| USE_OCC|| set it to '''ON'''
| USE_OCC|| Impostarlo a '''ON'''
|| OFF
|| OFF
|-
|-
| USE_PYTHON|| set it to '''OFF'''
| USE_PYTHON|| Impostarlo a '''OFF'''
|| ON
|| ON
|-
|-
| USE_SUPERBUILD|| set it to '''OFF'''
| USE_SUPERBUILD|| Impostarlo a '''OFF'''
|| ON
|| ON
|-
|-
| ZLIB_INCLUDE_DIR|| The path to the necessary 3rdparty component [https://en.wikipedia.org/wiki/Zlib zlib]. It is recommended to use the folder as input where your used LibPack is.
| ZLIB_INCLUDE_DIR|| Percorso del componente di terze parti necessario [https://en.wikipedia.org/wiki/Zlib zlib]. Si consiglia di utilizzare la cartella come input in cui si trova il LibPack utilizzato.
|| empty
|| vuoto
|-
|-
| ZLIB_LIBRARY_DEBUG|| The path to the ZLib file ''zlibd.lib''. It is located in the subfolder ''lib'' of your LibPack folder.
| ZLIB_LIBRARY_DEBUG|| Percorso del file ZLib ''zlibd.lib''. Si trova nella sottocartella ''lib'' della cartella LibPack.
|| empty
|| vuoto
|-
|-
| ZLIB_LIBRARY_RELEASE|| The path to the ZLib file ''zlib.lib''. It is located in the subfolder ''lib'' of your LibPack folder.
| ZLIB_LIBRARY_RELEASE|| Il percorso del file ZLib ''zlib.lib''. Si trova nella sottocartella ''lib'' della cartella LibPack.
|| empty
|| vuoto
|}
|}


* Additionally you need to add a new CMake entry:
* Inoltre è necessario aggiungere una nuova voce CMake:
name: ''CMAKE_DEBUG_POSTFIX'', type: ''string'', content: '''_d'''</br>
nome: ''CMAKE_DEBUG_POSTFIX'', tipo: ''stringa'', contenuto: '''_d'''</br>
Ciò garantisce che i nomi dei file delle librerie di debug abbiano un nome diverso rispetto alle librerie di rilascio e non possano essere successivamente scambiati accidentalmente.
This assures that he file names of the debug libraries get another name than the release libraries and can later not be accidentally exchanged.


* Press the ''Configure'' button in CMake to generate the *.cmake files.
* Premere il pulsante ''Configura'' in CMake per generare i file *.cmake.
* Necessario solo se devono essere supportate CPU precedenti che non dispongono del set di istruzioni AVX2:
* Only necessary if older CPU should be supported that don't have the AVX2 instruction set:
** Search your Netgen build folder for the file ''netgen-targets.cmake'' and open it with a text editor. Remove the setting '';/arch:AVX2'' in the Option INTERFACE_COMPILE_OPTIONS.
** Cercare nella tua cartella di build Netgen il file ''netgen-targets.cmake'' e aprirlo con un editor di testo. Rimuovere l'impostazione '';/arch:AVX2'' nell'opzione INTERFACE_COMPILE_OPTIONS.
** Press the ''Configure'' button in CMake again.
** Premere di nuovo il pulsante "Configure" in CMake.
* Press the ''Generate'' button in CMake.
* Premere il pulsante "Generate" in CMake.
* Open the project in Visual Studio and first build the ALL_BUILD and then INSTALL targets in the '''Release''' mode.
* Aprire il progetto in Visual Studio e creare prima i target ALL_BUILD e poi INSTALL in modalità '''Release'''.
* Repeat building the two targets in the '''Debug''' mode.
* Ripetere la creazione dei due obiettivi nella modalità '''Debug'''.


To build FreeCAD using the self-compiled Netgen, you must do the following:
Per compilare FreeCAD, utilizzando Netgen autocompilato, è necessario eseguire le seguenti operazioni:
* Copy all folders from the CMAKE_INSTALL_PREFIX to your LibPack folder (overwrite the existing files)
* Copiare tutte le cartelle da CMAKE_INSTALL_PREFIX nella tua cartella LibPack (sovrascrivere i file esistenti)


<span id="References"></span>
== Riferimenti ==
== Riferimenti ==


<div class="mw-translate-fuzzy">
Vedere anche
Vedere anche
* [[Compile_on_Windows_with_VS2013/it|Compilare in Windows con Visual Studio 2013]]
* [[Compiling_(Speeding_up)/it|Velocizzare la compilazione]]
* [[Compiling_(Speeding_up)/it|Velocizzare la compilazione]]
</div>




{{Docnav/it
{{Docnav/it
|[[Licence/it|Licenza]]
|[[License/it|Licenza]]
|[[Compile_on_Linux/it|Compilazione in Linux]]
|[[Compile_on_Linux/it|Compilazione in Linux]]
}}
}}

Revision as of 07:10, 7 April 2024

Questa pagina spiega passo dopo passo come compilare FreeCAD 0.19 o più recente su Windows utilizzando il compilatore MSVC di Microsoft. Per informazioni sull'utilizzo di MSYS2/MinGW, vedere Compilare su MinGW. Per altre piattaforme vedere Compilare FreeCAD.

Prerequisiti

La compilazione di FreeCAD su Windows richiede diversi strumenti e librerie.

Programmi richiesti

  • Un compilatore. FreeCAD è testato con Visual Studio (MSVC): altri compilatori potrebbero funzionare, ma le istruzioni per l'uso non sono incluse qui. Per maggiori dettagli, vedere la sezione Compilatore di seguito.
  • Git (Sono disponibili anche frontend GUI per Git, vedere la sezione successiva.)
  • CMake versione 3.11.x o successiva.
    Suggerimento: Scegliendo l'opzione Add CMake to the system PATH for all users, durante l'installazione di CMake, si renderà CMake accessibile dal prompt dei comandi di Windows, il che può essere utile.
  • Il LibPack. Questo è un singolo pacchetto contenente tutte le librerie necessarie per compilare FreeCAD su Windows. Scaricare la versione del LibPack che corrisponde alla versione di FreeCAD che si desidera compilare. Per compilare FreeCAD 0.20 scaricare il LibPack versione 2.6, per FreeCAD 0.19 scaricare il LibPack versione 1.0. Estrarre il LibPack in una posizione facilmente accessibile. (Se il tuo computer non riconosce l'estensione .7z, installare il programma 7-zip.)
    Nota: Si consiglia caldamente di compilare FreeCAD con la versione del compilatore per cui è progettato il LibPack. Ad esempio, si potrebbero riscontrare problemi durante la compilazione di FreeCAD 0.20 utilizzando MSVC 2017 perché il LibPack è progettato per essere compilato con MSVC 2019 o versioni successive.
    Per aggiornare il LibPack in un secondo momento, consultare la sezione Aggiornamento del Libpack.

Programmi opzionali

  • Un frontend GUI per Git. Ci sono diversi frontend disponibili, vedere questa lista. Il vantaggio principale di un frontend è che non si devono imparare i comandi Git per scaricare il codice sorgente di FreeCAD o per inviare patch al repository GitHub di FreeCAD.

Di seguito descriviamo la gestione del codice sorgente usando il frontend TortoiseGit. Questo frontend si integra direttamente in Windows con Esplora file e dispone di una grande comunità di utenti per ricevere assistenza in caso di problemi.

  • NSIS viene utilizzato per generare il programma di installazione di Windows di FreeCAD.

Codice sorgente

A questo punto si può scaricare il codice sorgente di FreeCAD:

Utilizzo di un frontend

Quando si utilizza il frontend di Git TortoiseGit:

  1. Creare una nuova cartella in cui verrà scaricato il codice sorgente.
  2. Fare clic con il tasto destro su questa cartella in Esplora file di Windows e selezionare nel menu contestuale Git Clone.
  3. Apparirà una finestra di dialogo. In esso, inserisci l'URL per il repository Git di FreeCAD

https://github.com/FreeCAD/FreeCAD.git

e clicca OK.

L'ultimo codice sorgente verrà scaricato dal repository Git di FreeCAD e la cartella verrà tracciata da Git.

Usando la riga di comando

Per creare un ramo locale e scaricare il codice sorgente è necessario aprire un terminale (prompt dei comandi) e portarsi nella directory in cui si desidera creare il sorgente, quindi digitare:

git clone https://github.com/FreeCAD/FreeCAD.git

Compilatore

Il compilatore predefinito (consigliato) è MS Visual Studio (MSVC). Sebbene sia possibile utilizzare altri compilatori, ad esempio gcc tramite Cygwin o MinGW, questi non sono testati o esaminati qui.

È possibile ottenere una versione gratuita di MSVC (per uso individuale) scaricando la versione Community di MS Visual Studio.

Per chi vuole evitare l'installazione completa dell'ingombrante MSVC al solo scopo di avere un compilatore può vedere Compilare in Windows - Occupare meno spazio.

Nota: Sebbene l'edizione Community di MSVC sia gratuita, per utilizzare l'IDE per un periodo di prova superiore a 30 giorni è necessario creare un account Microsoft. Se compilerai solo utilizzando la riga di comando, non avrai bisogno dell'IDE e quindi di nessun account Microsoft.

Come IDE alternativo gratuito e OpenSource puoi usare KDevelop. Puoi usare KDevelop per modificare e scrivere codice C++, ma devi usare la riga di comando per compilare.

Configurazione opzionale del percorso di sistema

Facoltativamente è possibile includere i percorsi di alcune cartelle nella variabile PATH di sistema. Ciò è utile se si desidera accedere ai programmi in queste cartelle dalla riga di comando/powershell o se si desidera che il compilatore o CMake trovino programmi speciali. Oltre a questo, potrebbe essere necessario aggiungere cartelle al PATH se non si sono utilizzate le opzioni corrispondenti durante l'installazione del programma.

  • Si può includere la cartella del tuo LibPack nella variabile PATH del tuo sistema. Ciò è utile se si prevede di creare più configurazioni / versioni di FreeCAD.
  • Se non si ha utilizzato l'opzione per aggiungere CMake al PERCORSO durante l'installazione, aggiungere la sua cartella di installazione

C:\Program Files\CMake\bin to the PATH.

  • Se non si ha utilizzato l'opzione per aggiungere TortoiseGit al PERCORSO durante l'installazione, aggiungere la sua cartella d'installazione

C:\Program Files\TortoiseGit\bin to the PATH.

Per aggiungere percorsi di cartelle alla variabile PATH:

  1. Nel menu Start di Windows, fare clic con il pulsante destro del mouse su "Computer" e scegliere "Proprietà".
  2. Nella finestra di dialogo visualizzata, fare clic su "Impostazioni di sistema avanzate".
  3. Si aprirà un'altra finestra di dialogo. Fare clic nella scheda Avanzate in Variabili d'ambiente.
  4. Ancora una volta si aprirà un'altra finestra di dialogo. Selezionare quindi la variabile Percorso e fare clic su Modifica.
  5. Si aprirà un'altra finestra di dialogo. Fare clic su Nuovo e aggiungere al percorso la cartella di Git o LibPack.
  6. Infine cliccare OK e chiudere tutte le finestre di dialogo cliccando ancora OK.

Configurazione

Una volta che hai tutti gli strumenti, le librerie e il codice sorgente di FreeCAD necessari, sei pronto per iniziare il processo di configurazione e compilazione. Questo processo procederà in cinque fasi:

  1. Eseguire CMake una prima volta per esaminare il tuo sistema e iniziare l'avanzamento della configurazione (verrà segnalato che l'operazione non è riuscita).
  2. Aggiustare le impostazioni CMake necessarie per configurare i percorsi del LibPack e abilitare Qt5.
  3. Rieseguire CMake per finalizzare la configurazione (questa volta dovrebbe riuscire).
  4. Utilizzare CMake per generare il sistema di compilazione di Visual Studio.
  5. Utilizzare Visual Studio per creare FreeCAD.

CMake

Inizialmente configurare l'ambiente di compilazione utilizzando CMake:

  1. Aprire la GUI di CMake
  2. Specificare la cartella di origine di FreeCAD.
  3. Specificare una cartella di compilazione. Questa può essere build nella cartella in cui è stato clonato il repository, perché questo percorso è ignorato da git. Non utilizzare la cartella di origine. CMake creerà questa cartella se non esiste.
  4. Fare clic su Configura.
  5. Nella finestra di dialogo, che appare, specificare il generatore, che si desidera utilizzare: nella maggior parte dei casi verranno utilizzate le impostazioni predefinite in questa finestra di dialogo. Per lo standard MS Visual Studio utilizzare Visual Studio xx 2yyy dove xx è la versione del compilatore e 2yyy l'anno del suo rilascio. Si consiglia di utilizzare l'opzione predefinita Use default native compilers.

Nota: È importante specificare la variante col numero di bit corretta. Se hai la variante a 64 bit di LibPack devi usare anche il compilatore x64.

Questo avvierà la configurazione e fallirà a causa delle impostazioni mancanti. Questo è normale: non hai ancora specificato la posizione del LibPack. Tuttavia, potrebbero verificarsi altri errori, che richiedono ulteriori azioni da parte tua.

Se non riesce, con il messaggio che Visual Studio non è stato trovato, il supporto CMake in MSVC non è ancora installato. Per farlo:

  1. Aprire l'IDE MSVC
  2. Utilizzare il menu Strumenti → Ottieni strumenti e funzionalità
  3. Nella scheda Workloads abilita Desktop development with C++
  4. Sul lato destro ora si dovrebbe vedere il messaggio, che il componente Visual C++ tools for CMake verrà installato.
  5. Installarlo.

Se fallisce, con un messaggio relativamente alla versione Python errata o Python mancante, allora:

  1. Usare la casella "Search:" in CMake per cercare la stringa "Python"
  2. Se si ottiene un percorso come C:/Program Files/Python38/python.exe, CMake ha trovato, che Python è già installato sul tuo PC, ma che quella versione non è compatibile con il LibPack. Poiché il LibPack include una versione compatibile di Python, modificare le seguenti impostazioni Python nei percorsi di CMake (supponendo che il LibPack si trovi nella cartella D:/FreeCAD-build/FreeCADLibs_2_8_x64_VC2019):

Se non appaiono errori da Visual Studio o da Python, va tutto bene, ma CMake non ha ancora tutte le impostazioni necessarie. Pertanto successivamente:

  1. Cercare in CMake la variabile FREECAD_LIBPACK_DIR e specificare la posizione della cartella LibPack, che è stata scaricata in precedenza.
  2. (Se si sta compilando FreeCAD 0.19) Cercare la variabile BUILD_QT5 e abilitare questa opzione.
  3. (Se si sta pianificando di eseguire direttamente dalla cartella di compilazione, ad esempio per il debug) Cercare e attivare le seguenti opzioni:
    • FREECAD_COPY_DEPEND_DIRS_TO_BUILD
    • FREECAD_COPY_LIBPACK_BIN_TO_BUILD
    • FREECAD_COPY_PLUGINS_BIN_TO_BUILD
  4. Fare di nuovo clic su Configure.

Ora non dovrebbero apparire errori. Se si continua a riscontrare errori, che non si riesce a diagnosticare, visitare le pagine Install/Compile forum sul sito Web del forum di FreeCAD. Se CMake ha terminato correttamente, cliccare su Generate. Fatto ciò si può chiudere CMake e avviare la compilazione di FreeCAD utilizzando Visual Studio. Tuttavia, per la prima compilazione, tenerlo aperto nel caso in cui si desideri o sia necessario modificare alcune opzioni per il processo di compilazione.

Opzioni per il processo di compilazione

Il sistema di generazione CMake offre la flessibilità necessaria per il processo di creazione. Ciò significa che è possibile attivare e disattivare alcune funzionalità o moduli tramite le variabili di CMake.

Ecco una descrizione di alcune di queste variabili:

Nome Variabile Descrizione Valore di Default
BUILD_XXX Fare il Build di FreeCAD con il componente XXX. Se non si vuole o non si ha bisogno di compilare ad es. l'ambiente OpenSCAD, disabilitare la variabile BUILD_OPENSCAD. FreeCAD quindi non avrà questo ambiente di lavoro. Nota: Alcuni componenti sono necessari per altri componenti. Se per esempio deselezioni BUILD_ROBOT CMake ti informerà che il componente Path non può essere compilato correttamente. Pertanto controllare l'output di CMake dopo aver modificato un'opzione BUILD_XXX! dipende
BUILD_ENABLE_CXX_STD La versione standard del linguaggio C++. C++14 è il più alto possibile per FreeCAD 0.19 mentre almeno C++17 è richiesto per FreeCAD 0.20. Vedere anche la nota nella sezione Compilazione con Visual Studio 15 (2017) e successive dipende
BUILD_DESIGNER_PLUGIN Per creare il plug-in Qt Designer, consultare questa sezione di seguito OFF
BUILD_FLAT_MESH Necessaria per avere una build che includa la funzionalità CreateFlatMesh OFF
CMAKE_INSTALL_PREFIX La cartella di output durante la creazione della destinazione INSTALL, vedere anche la sezione Esecuzione e installazione di FreeCAD Cartella d'installazione predefinita del programma in Windows
FREECAD_COPY_DEPEND_DIRS_TO_BUILD Copia le librerie dipendenti necessarie per eseguire FreeCAD.exe nella cartella di compilazione. Vedere anche la sezione Esecuzione e installazione di FreeCAD.
Nota: le opzioni FREECAD_COPY_XXX appaiono solo se le librerie non sono già state copiate. Se si ha solo bisogno di aggiornare/passare a un'altra versione di LibPack, consultare la sezione Aggiornamento del LibPack. Se si desidera ripristinare le opzioni per qualche motivo, si devono eliminare tutte le cartelle nella cartella di compilazione, ad eccezione della cartella LibPack. In CMake cancellare la cache e avviare come se si dovesse compilare per la prima volta.
OFF
FREECAD_COPY_LIBPACK_BIN_TO_BUILD Copia i file binari LibPack necessari per eseguire FreeCAD.exe nella cartella di compilazione. Vedere anche la sezione Esecuzione e installazione di FreeCAD. OFF
FREECAD_COPY_PLUGINS_BIN_TO_BUILD Copia i file del plugin di Qt necessari per eseguire FreeCAD.exe nella cartella di compilazione. Vedere anche la sezione Esecuzione e installazione di FreeCAD. OFF
FREECAD_LIBPACK_USE Attiva o disattiva l'utilizzo di FreeCAD LibPack. ON
FREECAD_LIBPACK_DIR Directory in cui si trova il LibPack. Cartella del codice sorgente di FreeCAD
FREECAD_RELEASE_PDB Crea librerie di debug (*.pdb) anche per build di rilascio. Non influisce sulla velocità (come farebbe una vera build di debug) e può essere molto utile per individuare arresti anomali nel codice di FreeCAD. Nel caso in cui FreeCAD si arresti in modo anomalo, verrà creato un file crash.dmp che può essere caricato con MSVC e se si dispone dei file PDB corrispondenti più il codice sorgente di quella versione è possibile eseguire il debug attraverso il codice. Senza i file PDB non è possibile eseguire il debug del codice e tutto ciò che il debugger mostra è il nome della DLL in cui si è verificato il crash. ON
FREECAD_USE_MP_COMPILE_FLAG Aggiunge l'opzione /MP (multiprocessore) ai progetti di Visual Studio, abilitando accelerazioni nelle CPU multi-core. Questo può accelerare notevolmente le build sui processori moderni.
Nota: Se disattivi FREECAD_USE_PCH, la compilazione può sovraccaricare rapidamente lo spazio dell'heap, anche se hai 16 GB di RAM.
ON
FREECAD_USE_PCH Precompila the headers per risparmiare tempo di compilazione. ON
FREECAD_USE_PYBIND11 Include la libreria PyBind11. Necessario avere una build che includa la funzionalità CreateFlatMesh.
Nota: dopo averla attivata si potrebbe ricevere un errore di configurazione. Basta configurare di nuovo e il problema dovrebbe scomparire.
OFF

Compilare FreeCAD

A seconda del compilatore, il processo per la compilazione di FreeCAD sarà leggermente diverso. Nelle sezioni seguenti sono descritti i flussi di lavoro noti. Se stai costruendo con Qt Creator, passa a Compilazione con Qt Creator (obsoleto), altrimenti procedi direttamente:

Compilazione con Visual Studio 15 (2017) e successive

Rilascio della Build

  1. Avviare l'IDE di Visual Studio. Questo si può fare cliccando sul pulsante Apri progetto nella GUI di CMake o facendo doppio clic sul file FreeCAD.sln, che si trova nella cartella di compilazione.
  2. Nella barra degli strumenti dell'IDE MSVC assicurarsi di utilizzare per la prima compilazione Release.
  3. C'è una finestra chiamata Solution Explorer. Elenca tutti i possibili target di compilazione. Per avviare una compilazione completa, fare clic con il pulsante destro del mouse sul target ALL_BUILD e quindi scegliere Build.

Ci vorrà molto tempo.

Per compilare un FreeCAD pronto all'uso, compila la destinazione INSTALLA , vedere la sezione Esecuzione e installazione di FreeCAD.

Se non ricevi errori, hai finito. Congratulazioni! Puoi uscire da MSVC o tenerlo aperto.

Importante: A partire da Visual Studio 17.4 non è possibile utilizzare l'ottimizzazione del codice attiva per impostazione predefinita per il target SketcherGui. In tal caso, i vincoli angolari verranno posizionati in modo errato negli schizzi. Per risolvere questo problema, fare clic con il pulsante destro del mouse su questo target in Esplora soluzioni MSVC e selezionare l'ultima voce Proprietà nel menu contestuale. Nella finestra di dialogo che appare andare su C/C++ → Ottimizzazione e disabilitare l'impostazione Ottimizzazione. Infine costruire di nuovo il target ALL_BUILD.

Compilazione di Debug

Per una compilazione di debug è necessario utilizzare Python incluso nel LibPack. Per verificarlo:

  1. Cercare "Python" nella GUI di CMake
  2. Se si nota un percorso come C:/Program Files/Python38/python.exe, significa che CMake ha riconosciuto il Python, che è installato sul tuo PC, e non quello del LibPack. In questo caso adattare queste diverse impostazioni Python in CMake alle seguenti (assumendo che il LibPack si trovi nella cartella D:\FreeCAD-build\FreeCADLibs_12.5.2_x64_VC17):

Come prerequisito per la build di debug, devi fare questo:

  1. Copiare il contenuto della cartella LibPack bind nella cartella bin della cartella build di FreeCAD (sovrascrivere i file esistenti).
  2. Copiare il contenuto della cartella LibPack libd nella cartella lib della cartella build di FreeCAD.

Adesso puoi compilare:

  1. Avviare l'IDE di Visual Studio. Questo può essere fatto premendo il pulsante Apri progetto nella GUI di CMake o facendo doppio clic sul file FreeCAD.sln, che si trova nella cartella di build.
  2. Nella barra degli strumenti dell'IDE MSVC assicurarsi di utilizzare per la prima compilazione Debug.
  3. C'è una finestra chiamata Solution Explorer. Elenca tutti i possibili obiettivi di compilazione. Per avviare una compilazione completa, fare clic con il pulsante destro del mouse sul target ALL_BUILD e scegliere Build nel menu contestuale.

Richiederà molto tempo.

Se non ci sono stati errori di compilazione e se le opzioni FREECAD_COPY_* menzionate nella Fase di configurazione di CMake sopra sono state abilitate, si può avviare la build di debug:

  1. Fare clic con il pulsante destro del mouse sull'obiettivo FreeCADMain e scegliere Set as Startup Project nel menu contestuale.
  2. Infine fare clic sulla barra degli strumenti sul pulsante con il triangolo verde indicato Local Windows Debugger.

Questo avvierà la build di debug di FreeCAD ed è possibile utilizzare l'IDE MSVC per eseguirne il debug.

Risorse video

Un tutorial in lingua inglese che inizia con la configurazione in CMake Gui e continua con il comando `Build` in Visual Studio 16 2019 è disponibile unlisted su YouTube all'indirizzo Tutorial: Build FreeCAD from source on Windows 10 .

Compilazione con Qt Creator (obsoleto)

Installazione e configurazione di Qt Creator

  • Scaricare e installare Qt Creator
  • Strumenti → Opzioni → Editor di testo → scheda Comportamento:
    • Codifica dei file → Codifiche predefinite:
    • Impostato su: ISO-8859-1 /...csISOLatin1 (Alcuni caratteri creano errori / avvertimenti con Qt Creator se lasciato impostato su UTF-8. Questo sembra risolverlo.)
  • Strumenti → Opzioni → Crea ed esegui:
    • Scheda CMake
      • Riempire la casella Eseguibile con il percorso di cmake.exe
    • Scheda Kit
      • Nome: MSVC 2008
      • Compilatore: Microsoft Visual C++ Compiler 9.0 (x86)
      • Debugger: rilevato automaticamente ...
      • Versione Qt: Nessuna
    • Scheda Generale
      • Deselezionare: crea sempre un progetto prima di distribuirlo
      • Deselezionare: distribuire sempre il progetto prima di eseguirlo

Importare e creare il progetto

  • File → Apri file o progetto
  • Aprire CMakeLists.txt che si trova nel livello più alto della fonte
  • Questo avvierà CMake
  • Scegliere la cartella di costruzione e fare clic su Avanti
  • Impostare il generatore su NMake Generator (MSVC 2008)
  • Cliccare Esegui CMake. Seguire le istruzioni illustrate sopra per configurare CMake a tuo piacimento.

Ora è possibile creare FreeCAD

  • Build → Build All
  • Ci vorrà molto tempo ...

Una volta completato, può essere eseguito: Ci sono 2 triangoli verdi in basso a sinistra. Uno è il debug. L'altro è l'eseguibile. Scegliere quello che si desidera.

Compilazione dalla riga di comando

I passaggi su come compilare dalla riga di comando dipendono dal compilatore. Per MSVC 2017 i passaggi sono:

  1. Nel menu Start di Windows andare a Visual Studio 2017 → Visual Studio Tools e scegliere Prompt dei comandi per sviluppatori per VS 2017
  2. Passare alla tua cartella di build.
  3. Eseguire il comando
msbuild ALL_BUILD.vcxproj /p:Configuration=Release

o

msbuild INSTALL.vcxproj /p:Configuration=Release

Questi passaggi possono anche essere automatizzati. Ecco ad esempio una soluzione per MSVC 2017:

  1. Scaricare lo script compile-FC.txt.
  2. Rinominarlo in compile-FC.bat
  3. In Esplora file di Windows fare Shift + Click con il tasto destro del mouse sulla cartella di build e utilizzare dal menu di scelta rapida "Command prompt here".
  4. Eseguire il comando
compile-FC install

Invece di chiamare compile-FC con l'opzione install si può anche usare debug o release:

debug   - compila FreeCAD nella configurazione di debug

release - compila FreeCAD nella configurazione della versione

install    - compila FreeCAD nella configurazione di rilascio e crea una versione d'installazione

Esecuzione e installazione di FreeCAD

Esistono 2 metodi per eseguire FreeCAD compilato:

Metodo 1: Eseguire FreeCAD.exe che si trova nella cartella di compilazione nella sottocartella bin

Metodo 2: compilare il target INSTALL

Il metodo 2 è quello più semplice, perché assicura automaticamente che tutte le librerie necessarie per eseguire FreeCAD.exe siano nella cartella corretta. FreeCAD.exe e le librerie verranno emessi nella cartella specificata nella variabile CMake CMAKE_INSTALL_PREFIX.

Per il Metodo 1 devi abilitare le opzioni FREECAD_COPY_* menzionate nella Fase di configurazione di CMake sopra.

Risoluzione dei problemi

Durante l'esecuzione di FreeCAD è possibile riscontrare DLL mancanti quando si utilizzano determinati ambienti di lavoro o funzionalità di ambienti di lavoro. Il messaggio di errore nella console di FreeCAD non ti dirà quale DLL manca. Per scoprirlo è necessario utilizzare uno strumento esterno:

import os
os.system(r"~\DependenciesGui.exe")

Nota: invece di ~ si deve specificare il percorso completo di DependenciesGui.exe sul tuo sistema.

  • Ora trascinare il file *.pyd del workbench con il quale si ottengono le DLL mancanti segnalate.

Aggiornamento della compilazione

FreeCAD è sviluppato molto attivamente. Pertanto il suo codice sorgente cambia quasi quotidianamente. Nuove funzionalità vengono aggiunte e i bug corretti. Per beneficiare di queste modifiche al codice sorgente, è necessario ricompilare FreeCAD. Questo avviene in due fasi:

  1. Aggiornamento del codice sorgente
  2. Ricompilazione

Aggiornamento del codice sorgente

Usando un frontend

Quando si utilizza il frontend di Git TortoiseGit:

  1. Fare clic con il tasto destro del mouse sulla cartella del codice sorgente di FreeCAD in Esplora file di Windows e selezionare nel menu di scelta rapida 'Pull' .
  2. Apparirà una finestra di dialogo. Selezionare quale ramo di sviluppo vuoi utilizzare. master è il ramo principale. Pertanto utilizzare questo a meno che non si desideri compilare una nuova funzionalità speciale da un ramo che non è stato ancora unito a "master". (Per ulteriori informazioni sui rami Git, vedere Processo di sviluppo Git).

Finalmente cliccare su OK.

Utilizzando la riga di comando

Aprire un terminale (prompt dei comandi) e passare alla cartella di origine. Quindi digitare:

git pull https://github.com/FreeCAD/FreeCAD.git master

dove master è il nome del ramo di sviluppo principale. Se si vuole ottenere il codice da un altro ramo, usare il suo nome invece di master.

Ricompilazione

  1. Aprire l'IDE MSVC facendo doppio clic sul file FreeCAD.sln o sul file ALL_BUILD.vcxproj nella cartella di compilazione.
  2. Continuare con il passaggio 2 dalla sezione Compilazione con Visual Studio 15 (2017) e successive.

Aggiornamento del Libpack

Se viene rilasciata una nuova versione principale di una dipendenza di terze parti come Open Cascade o se una dipendenza di terze parti ha importanti correzioni di bug, viene rilasciato un nuovo LibPack. Si può trovare l'ultima versione qui.

Per aggiornare il tuo LibPack, la seguente procedura è la pratica migliore:

  1. Eliminare la cartella bin nella tua cartella di compilazione.
  2. Passare alla tua cartella LibPack locale ed eliminare tutto il contenuto.
  3. Estrarre il contenuto del nuovo file ZIP LibPack nella cartella LibPack locale esistente, che ora è vuota.
  4. Aprire CMake e premere il pulsante Configure e poi il pulsante Generate. Questo ricrea la cartella bin appena eliminata e vi copia anche i nuovi file LibPack.
  5. In CMake fare clic sul pulsante Open Project e si aprirà l'IDE MSVC.
  6. Nell'IDE MSVC creare la destinazione INSTALL.

Strumenti

Per partecipare allo sviluppo di FreeCAD è necessario compilare e installare i seguenti strumenti:

Plugin di Qt Designer

FreeCAD usa Qt come toolkit per la sua interfaccia utente. Tutte le finestre di dialogo sono impostate in file UI che possono essere modificati utilizzando il programma Qt Designer che fa parte di qualsiasi installazione di Qt ed è anche incluso nel LibPack. FreeCAD ha il proprio set di widget Qt per fornire funzionalità speciali come l'aggiunta di un'unità ai campi di input e per impostare le proprietà delle preferenze.

Compilazione

Il plugin non può essere caricato da Qt Designer se è stato compilato utilizzando una versione di Qt diversa da quella su cui si basa Qt Designer/Qt Creator. Pertanto il plugin deve essere compilato insieme a FreeCAD:

  • Nelle opzioni di CMake (vedere questa sezione sopra) abilitare l'opzione BUILD_DESIGNER_PLUGIN e riconfigurare.
  • aprire MSVC e creare il target FreeCAD_widgets

Come risultato si otterrà il file del plugin 'FreeCAD_widgets.dll nella cartella
~\src\Tools\plugins\widget\Release

Installazione

Per installare il plugin, copia la DLL in

  • Se si usa il LibPack: nella cartella
    ~\FreeCADLibs_2_8_x64_VC2019\plugins\designer
  • Se si ha un'installazione Qt completa: si può scegliere tra la cartella
    C:\Qt\5.15.2\msvc2019_64\plugins\designer
    o
    C: \Qt\5.15.2\msvc2019_64\bin\designer (si deve prima creare la sottocartella designer.)
    (adattare i percorsi alla propria installazione!).

Infine (ri)avviare Qt Designer e controllare il suo menu Help → Plugins. Se il plugin FreeCAD_widgets.dll è elencato come caricato, ora si può progettare e modificare i file .ui di FreeCAD. In caso contrario, si deve compilare la DLL da se.

Se si preferisce usare Qt Creator invece di Qt Designer, il file del plugin deve essere posizionato in questa cartella:
C:\Qt\Qt5.15.2 \Tools\QtCreator\bin\plugins\designer
Quindi (ri)avviare Qt Creator, passare alla modalità Design e controllare il menu Tools → Form Editor → About Qt Designer Plugins. Se il plugin FreeCAD_widgets.dll è elencato tra quelli caricati, si può progettare e modificare i file .ui di FreeCAD. In caso contrario, ci si deve compilare la DLL.

Creatore di miniature

FreeCAD ha la funzionalità per fornire miniature di anteprima per i file *.FCStd. Ciò significa, che nel file explorer di Windows i file *.FCStd, sono mostrati con uno screenshot del modello che contiene. Per fornire questa funzionalità, FreeCAD deve avere il file FCStdThumbnail.dll installato in Windows.

Installazione

La DLL viene installata in questo modo:

  1. Scaricare questo file ZIP ed estrarlo.
  2. Aprire un prompt dei comandi di Windows con privilegi di amministratore (questi privilegi sono un requisito).
  3. Passare alla cartella in cui si trova la DLL.
  4. Eseguire questo comando
    regsvr32 FCStdThumbnail.dll
    

Quindi controllare se funziona, assicurarsi che in FreeCAD l'opzione delle preferenze Salva la miniatura nel file di progetto al salvataggio del documento sia abilitata e salvare il modello. Quindi visualizzare in Windows Explorer la cartella del modello salvato utilizzando una vista simboli. Ora si dovrebbe vedere uno screenshot del modello nella vista delle cartelle.

Compilazione

Per compilare FCStdThumbnail.dll

  1. Passare alla cartella sorgente di FreeCAD
    ~\src\Tools\thumbs\ThumbnailProvider
  2. Aprire la GUI di CMake
  3. Specificare come cartella di origine quella in cui ci si trova attualmente.
  4. Usare la stessa cartella della cartella build.
  5. Fare clic su Configure
  6. Nella finestra di dialogo che appare, specificare il generatore in base a quello che si vuole usare. Per lo standard MS Visual Studio utilizzare Visual Studio xx 2yyy dove xx è la versione del compilatore e 2yyy l'anno del suo rilascio. Si consiglia di utilizzare l'opzione predefinita Use default native compilers.
    Nota: È importante specificare la variante col numero di bit corretta. Se si ha la variante a 64 bit di LibPack si deve usare anche il compilatore x64.
  7. Cliccare su Generate.
  8. Ora si dovrebbe avere il file ALL_BUILD.vcxproj nella cartella ~\src\Tools\thumbs\ThumbnailProvider. Fare doppio clic su di esso e si aprirà l'IDE MSVC.
  9. Nella barra degli strumenti dell'IDE MSVC assicurarsi di utilizzare l'obiettivo di compilazione Release.
  10. C'è una finestra chiamata Solution Explorer. Fare clic destro su ALL_BUILD e poi sceglire Build.
  11. Come risultato ora si dovrebbe avere un FCStdThumbnail.dll nella cartella ~\src\Tools\thumbs\ThumbnailProvider\release, che si può installare come descritto sopra.

Compilazione di Open Cascade

Il LibPack viene fornito con una versione di Open Cascade adatta all'uso generale. Tuttavia, in alcune circostanze potresti voler compilare con una versione alternativa di Open Cascade, come ad esempio una delle loro versioni ufficiali o un fork con patch.

Durante la compilazione di Open Cascade per FreeCAD, si tenga presente che non vi è alcuna garanzia che FreeCAD funzioni con tutte le versioni di Open Cascade. Si noti inoltre che quando si utilizza la libreria Netgen, è necessario utilizzare una versione NetGen approvata per la compilazione con la versione Open Cascade che si desidera compilare.

Compilare:

  • Quindi aprire la GUI di CMake per configurare il sistema di compilazione in modo simile alla creazione di FreeCAD. Queste opzioni di CMake devono essere impostate (o esplicitamente non impostate):
Nome Variabile Descrizione Valore di Default
3RDPARTY_DIR Percorso verso i componenti di terze parti. Si consiglia di utilizzare la cartella come input in cui si trova il LibPack utilizzato. Lasciare esplicitamente vuoto questo campo. vuoto
3RDPARTY_DOXYGEN_EXECUTABLE Percorso dell'eseguibile del componente di terze parti Doxygen. Si consiglia di installare Doxygen. Così CMake lo troverà automaticamente. vuoto
3RDPARTY_FREETYPE_DIR Percorso del componente di terze parti necessario Freetype. Si consiglia di utilizzare la cartella come input in cui si trova il LibPack utilizzato. vuoto
3RDPARTY_RAPIDJSON_DIR Disponibile solo se viene utilizzato USE_RAPIDJSON. Percorso del componente di terze parti RapidJSON. Si consiglia di NON utilizzare una cartella LibPack esistente come input. Si può usare la cartella RapidJSOn da un LibPack, ma copiata in una nuova cartella e poi usare questa nuova cartella come input. vuoto
3RDPARTY_TCL_DIR Percorso al componente di terze parti necessario TCL. Si consiglia di NON utilizzare una cartella LibPack esistente come input. Prendere ad esempio una di queste versioni, estrarla e prenderla come cartella di input per CMake. vuoto
3RDPARTY_TK_DIR Percorso del componente di terze parti necessario TK. Si consiglia di NON utilizzare una cartella LibPack esistente come input. Prendere ad esempio una di queste versioni, estrarla e prenderla come cartella di input per CMake. vuoto
3RDPARTY_VTK_DIR Disponibile solo se viene utilizzato USE_VTK. Percorso del componente di terze parti necessario VTK. Si consiglia di utilizzare la cartella come input in cui si trova il LibPack utilizzato. Se si utilizza un'altra cartella, assicurarsi di non utilizzare VTK 9.x o versioni successive. vuoto
BUILD_RELEASE_DISABLE_EXCEPTIONS Disabilita la gestione delle eccezioni per le build di rilascio. Per FreeCAD si deve impostarlo su OFF. ON
INSTALL_DIR Cartella di output durante la creazione della destinazione INSTALL. Se la compilazione è andata a buon fine, prendere i file da questa cartella per aggiornare il tuo LibPack. Cartella d'installazione predefinita del programma in Windows
INSTALL_DIR_BIN Sottocartella di output per la DLL durante la creazione del target INSTALL. Si deve cambiarlo in bin. win64/vc14/bin
INSTALL_DIR_LIB Sottocartella di output per i file .lib durante la creazione della destinazione INSTALL. Si deve cambiarlo in lib. win64/vc14/lib
USE_RAPIDJSON Per compilare Open Cascade con supporto per RapidJSON. L'abilitazione è obbligatoria per ottenere supporto per il formato file glTF. OFF
USE_VTK Per compilare Open Cascade con supporto per VTK. Abilitare questo è ottimale. Si può usarlo per costruire il bridge VTK di Open Cascade. OFF
  • Aprire il progetto in Visual Studio e per prima cosa creare i target ALL_BUILD e poi INSTALL in modalità Release.
  • Ripetere la creazione dei due target nella modalità Debug.

Per creare FreeCAD, utilizzando Open Cascade autocompilato, è necessario eseguire le seguenti operazioni:

  • Copiare tutte le cartelle da INSTALL_DIR nella tua cartella LibPack (sovrascrivere i file esistenti)
  • Passare alla cartella LibPack e andare lì alla sottocartella cmake
  • Aprire il file OpenCASCADEDrawTargets.cmake con un editor di testo
  • Cercare i percorsi assoluti della tua cartella LibPack e rimuoverli. Quindi ad es. il percorso assoluto
    D:/FreeCADLibs_12.5.4_x64_VC17/lib/freetype.lib
    diventerà solo
    freetype.lib
  • Fare lo stesso per il file OpenCASCADEVisualizationTargets.cmake

Compilazione di Netgen

Il LibPack viene fornito con una versione di Netgen che sarà stata testata per essere compilata con la versione Open Cascade del LibPack. Il problema è che ogni nuova versione di Netgen cambia l'API. Anche ogni nuova versione di Open Cascade fa lo stesso. Pertanto non si può semplicemente cambiare in modo semplice la versione di Netgen.

Tuttavia, potresti comunque compliare Netgen. Questa è un'attività semplice:

  • Per prima cosa scaricare il codice sorgente di Netgen, direttamente dal repository git di Netgen.
  • Quindi aprire la GUI di CMake, per configurare il sistema di compilazione in modo simile alla creazione di FreeCAD. Devono essere impostate le seguenti opzioni di CMake :
Nome Variabile Descrizione Valore di Default
CMAKE_INSTALL_PREFIX Cartella di output durante la creazione della destinazione INSTALL. Se la compilazione è andata a buon fine, prendere i file da questa cartella per aggiornare il tuo LibPack. C:/netgen
OpenCasCade_DIR Percorso dei file CMake di Open Cascade. Se si è compilato Open Cascade come descritto nella sezione Compilazione di Open Cascade si può usare la sottocartella cmake della cartella usata come INSTALL_DIR. In caso contrario, usare la sottocartella cmake del tuo LibPack. Si noti che il LibPack deve già contenere una corretta build Open Cascade. Indipendentemente dalla cartella utilizzata, si deve creare anche una sottocartella lib e copiarvi i file freetype.lib e freetyped.lib dal tuo LibPack. vuoto
USE_GUI Impostarlo a OFF ON
USE_NATIVE_ARCH Impostarlo su OFF; questo è necessario solo per supportare le CPU più vecchie che non hanno il set di istruzioni AVX2. ON
USE_OCC Impostarlo a ON OFF
USE_PYTHON Impostarlo a OFF ON
USE_SUPERBUILD Impostarlo a OFF ON
ZLIB_INCLUDE_DIR Percorso del componente di terze parti necessario zlib. Si consiglia di utilizzare la cartella come input in cui si trova il LibPack utilizzato. vuoto
ZLIB_LIBRARY_DEBUG Percorso del file ZLib zlibd.lib. Si trova nella sottocartella lib della cartella LibPack. vuoto
ZLIB_LIBRARY_RELEASE Il percorso del file ZLib zlib.lib. Si trova nella sottocartella lib della cartella LibPack. vuoto
  • Inoltre è necessario aggiungere una nuova voce CMake:

nome: CMAKE_DEBUG_POSTFIX, tipo: stringa, contenuto: _d
Ciò garantisce che i nomi dei file delle librerie di debug abbiano un nome diverso rispetto alle librerie di rilascio e non possano essere successivamente scambiati accidentalmente.

  • Premere il pulsante Configura in CMake per generare i file *.cmake.
  • Necessario solo se devono essere supportate CPU precedenti che non dispongono del set di istruzioni AVX2:
    • Cercare nella tua cartella di build Netgen il file netgen-targets.cmake e aprirlo con un editor di testo. Rimuovere l'impostazione ;/arch:AVX2 nell'opzione INTERFACE_COMPILE_OPTIONS.
    • Premere di nuovo il pulsante "Configure" in CMake.
  • Premere il pulsante "Generate" in CMake.
  • Aprire il progetto in Visual Studio e creare prima i target ALL_BUILD e poi INSTALL in modalità Release.
  • Ripetere la creazione dei due obiettivi nella modalità Debug.

Per compilare FreeCAD, utilizzando Netgen autocompilato, è necessario eseguire le seguenti operazioni:

  • Copiare tutte le cartelle da CMAKE_INSTALL_PREFIX nella tua cartella LibPack (sovrascrivere i file esistenti)

Riferimenti

Vedere anche