Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to build x86 and/or x64 on Windows from command line with CMAKE?

One way to get cmake to build x86 on Windows with Visual Studio is like so:

  1. Start Visual Studio Command prompt for x86
  2. Run cmake: cmake -G "NMake Makefiles" \path_to_source\
  3. nmake

One way to get cmake to build x64 on Windows with Visual Studio is like so:

  1. Start Visual Studio Command prompt for x64
  2. Run cmake: cmake -G "NMake Makefiles" \path_to_source\
  3. nmake

Using Cmake, how do I compile either or both architectures? (like how Visual Studio does it from in the IDE)

like image 736
101010 Avatar asked Feb 05 '15 17:02

101010


People also ask

How do I build from source CMake?

In order to build CMake from a source tree on Windows, you must first install the latest binary version of CMake because it is used for building the source tree. Once the binary is installed, run it on CMake as you would any other project.


2 Answers

This cannot be done with CMake. You have to generate two separate build folders. One for the x86 NMake build and one for the x64 NMake build. You cannot generate a single Visual Studio project covering both architectures with CMake, either.

To build Visual Studio projects from the command line for both 32-bit and 64-bit without starting a Visual Studio command prompt, use the regular Visual Studio generators.

For CMake 3.13 or newer, run the following commands:

cmake -G "Visual Studio 16 2019" -A Win32 -S \path_to_source\ -B "build32" cmake -G "Visual Studio 16 2019" -A x64 -S \path_to_source\ -B "build64" cmake --build build32 --config Release cmake --build build64 --config Release 

For earlier versions of CMake, run the following commands:

mkdir build32 & pushd build32 cmake -G "Visual Studio 15 2017" \path_to_source\ popd mkdir build64 & pushd build64 cmake -G "Visual Studio 15 2017 Win64" \path_to_source\ popd cmake --build build32 --config Release cmake --build build64 --config Release 

CMake generated projects that use one of the Visual Studio generators can be built from the command line with using the option --build followed by the build directory. The --config option specifies the build configuration.

like image 108
sakra Avatar answered Sep 27 '22 18:09

sakra


try use CMAKE_GENERATOR_PLATFORM

e.g.

// x86 cmake -DCMAKE_GENERATOR_PLATFORM=x86 .   // x64 cmake -DCMAKE_GENERATOR_PLATFORM=x64 .  
like image 41
Zam Avatar answered Sep 27 '22 19:09

Zam