discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

Re: Crosscompiling for Windows

JB
Jordan Brown
Thu, Mar 3, 2022 5:35 PM

Here's my notes from wiping my MSYS2 install and reconstructing it. 
This somewhere between notes and documentation.  I'd be interested in
any comments.

--- Set up environment ---

Note:  MSYS2 does not appear to support 32-bit systems any more.

Download from https://www.msys2.org/

Install per instructions, including the first-time-install upgrades
(pacman -Syu, -Su).  Installing development components is not necessary
at this point.

Start a MSYS2 shell window using the "MSYS2 MinGW x64" link in the Start
menu.  [[ If you wanted to build a 32-bit OpenSCAD, you might be able to
use "MSYS2 MinGW x86". Don't know if that's worth mentioning. ]]

Install dependencies:

$ curl -L
https://github.com/openscad/openscad/raw/master/scripts/msys2-install-dependencies.sh
| sh

Another way to install dependencies:

$ pacman -S git
$ git clone git://github.com/openscad/openscad.git
$ openscad/scripts/msys2-install-dependencies.sh

--- Set up source directory ---

$ git clone git://github.com/openscad/openscad.git
$ cd openscad
$ git submodule update --init

--- Set up build directory ---

$ cd openscad
$ mkdir b
$ cd b
$ cmake .. -G"MSYS Makefiles" -DCMAKE_INSTALL_PREFIX=/usr
-DCMAKE_BUILD_TYPE=Release -DEXPERIMENTAL=ON -DSNAPSHOT=ON

--- Build ---

$ make

You might want to add -jN, where N is the number of compiles to run in
parallel - approximately, the number of processor cores on the system.

Here's my notes from wiping my MSYS2 install and reconstructing it.  This somewhere between notes and documentation.  I'd be interested in any comments. --- Set up environment --- Note:  MSYS2 does not appear to support 32-bit systems any more. Download from https://www.msys2.org/ Install per instructions, including the first-time-install upgrades (pacman -Syu, -Su).  Installing development components is not necessary at this point. Start a MSYS2 shell window using the "MSYS2 MinGW x64" link in the Start menu.  [[ If you wanted to build a 32-bit OpenSCAD, you might be able to use "MSYS2 MinGW x86". Don't know if that's worth mentioning. ]] Install dependencies: $ curl -L https://github.com/openscad/openscad/raw/master/scripts/msys2-install-dependencies.sh | sh Another way to install dependencies: $ pacman -S git $ git clone git://github.com/openscad/openscad.git $ openscad/scripts/msys2-install-dependencies.sh --- Set up source directory --- $ git clone git://github.com/openscad/openscad.git $ cd openscad $ git submodule update --init --- Set up build directory --- $ cd openscad $ mkdir b $ cd b $ cmake .. -G"MSYS Makefiles" -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DEXPERIMENTAL=ON -DSNAPSHOT=ON --- Build --- $ make You might want to add -jN, where N is the number of compiles to run in parallel - approximately, the number of processor cores on the system.
JB
Jordan Brown
Thu, Mar 3, 2022 5:37 PM

On 3/3/2022 9:35 AM, Jordan Brown wrote:

--- Build ---

$ make

Make that

$ cd openscad
$ cd b
$ make

On 3/3/2022 9:35 AM, Jordan Brown wrote: > --- Build --- > > $ make Make that $ cd openscad $ cd b $ make
MB
maurizio butti
Thu, Mar 3, 2022 7:36 PM

If this is going to update the wiki I would definitely rename b in build
(seems a little difference but is far less confusing).
"git clone" should be invoked anyway, so I see no point in curling the
script to use it.

On Thu, Mar 3, 2022 at 6:37 PM Jordan Brown openscad@jordan.maileater.net
wrote:

On 3/3/2022 9:35 AM, Jordan Brown wrote:

--- Build ---

$ make

Make that

$ cd openscad
$ cd b
$ make

If this is going to update the wiki I would definitely rename b in build (seems a little difference but is far less confusing). "git clone" should be invoked anyway, so I see no point in curling the script to use it. On Thu, Mar 3, 2022 at 6:37 PM Jordan Brown <openscad@jordan.maileater.net> wrote: > On 3/3/2022 9:35 AM, Jordan Brown wrote: > > --- Build --- > > $ make > > > Make that > > $ cd openscad > $ cd b > $ make > >
JB
Jordan Brown
Fri, Mar 4, 2022 12:34 AM

On 3/3/2022 11:36 AM, maurizio butti wrote:

If this is going to update the wiki

Yes.

I would definitely rename b in build (seems a little difference but is
far less confusing.

OK.

"git clone" should be invoked anyway, so I see no point in curling the
script to use it.

I started out that way, but it was kind of awkward since logically there
are four steps:

  • Set up the environment
  • Set up a source directory
  • Set up a build directory
  • Build

and running the prerequisites script is part of setting up the
environment, but cloning the repository is part of setting up a source
directory.

Remember that you may want to set up multiple source directories if you
are working on multiple projects.

On 3/3/2022 11:36 AM, maurizio butti wrote: > If this is going to update the wiki Yes. > I would definitely rename b in build (seems a little difference but is > far less confusing. OK. > "git clone" should be invoked anyway, so I see no point in curling the > script to use it. I started out that way, but it was kind of awkward since logically there are four steps: * Set up the environment * Set up a source directory * Set up a build directory * Build and running the prerequisites script is part of setting up the environment, but cloning the repository is part of setting up a source directory. Remember that you may want to set up multiple source directories if you are working on multiple projects.
JB
Jordan Brown
Fri, Mar 4, 2022 12:42 AM

On 3/3/2022 4:34 PM, Jordan Brown wrote:

"git clone" should be invoked anyway, so I see no point in curling
the script to use it.

I started out that way, but it was kind of awkward since logically
there are four steps:

  • Set up the environment
  • Set up a source directory
  • Set up a build directory
  • Build

and running the prerequisites script is part of setting up the
environment, but cloning the repository is part of setting up a source
directory.

Also:  the base install doesn't include git, so you'd have to "pacman -S
git" first.

On 3/3/2022 4:34 PM, Jordan Brown wrote: >> "git clone" should be invoked anyway, so I see no point in curling >> the script to use it. > > I started out that way, but it was kind of awkward since logically > there are four steps: > > * Set up the environment > * Set up a source directory > * Set up a build directory > * Build > > and running the prerequisites script is part of setting up the > environment, but cloning the repository is part of setting up a source > directory. > Also:  the base install doesn't include git, so you'd have to "pacman -S git" first.