How to Use CMake for Non-Interactive Build on Windows?

前端 未结 4 1129
离开以前
离开以前 2021-02-06 02:03

I want to set up automated build using CMake on Windows. I am using Visual Studio 2005.

Update: Here is what I am using:

I set devenv.exe to my

相关标签:
4条回答
  • 2021-02-06 02:24

    I'm not sure if I understand the question. You use it exactly like for any other build system. Just specify "Visual Studio 8 2005" (little bit weird, but you can get a list of all supported systems by calling cmake without parameters) and you'll get a solution that can be built on the command line either with devenv.exe /build or with MSBuild.

    The only thing that is a little bit complicated is if you want to generate the solution when Visual Studio is not installed, like on a build server. You can, of course, just install it, but I prefer not to install things you don't need. In that case, you have to fake it to accept MSBuild as the build command line (by specifying a batch file as build tool at the command line, that just reorders the arguments so MSBuild accepts them), so that it won't start bitching about how it misses Visual Studio (which is so crazy, since the CMake people are from the command-line world...)

    Oh, and if what you really want is just to build an existing Visual Studio solution on the command line, you don't need CMake. Just call MSBuild or devenv /build.

    0 讨论(0)
  • 2021-02-06 02:30

    This is the bat file I created. It automatically creates the solution in the build folder you specify, each time deleting and creating a new build folder.

    RMDIR C:\Users\abc /s /q
    
    if EXIST C:\Users\abc GOTO FALIURE
    
    MKDIR C:\Users\abc\build
    CD C:\Users\abc\build
    cmake -G "Visual Studio 12" "C:\Users\abc\src"
    EXIT
    
    :FALIURE
    CLS
    echo "Failed to delete BUILD directory, Close all related files and programs and try again."
    pause
    EXIT
    
    0 讨论(0)
  • 2021-02-06 02:35

    You can run CMake from the command line. You could run.

    cmake.exe -G"Visual Studio 8 2005" -H<source_dir> -B<build_dir>
    

    Below is a snippet from the original command line usage output. Notice that the -H and -B option are not documented there. But they can be used to explicitly define the source and build directories on the command line.

    C:\Program Files (x86)\CMake 2.6\bin>cmake
      cmake version 2.6-patch 4
      Usage
    
      cmake [options] <path-to-source>
      cmake [options] <path-to-existing-build>
    
      Options
      -C <initial-cache>          = Pre-load a script to populate the cache.
      -D <var>:<type>=<value>     = Create a cmake cache entry.
      -U <globbing_expr>          = Remove matching entries from CMake cache.
      -G <generator-name>         = Specify a makefile generator.
      -Wno-dev                    = Suppress developer warnings.
      -Wdev                       = Enable developer warnings.
      -E                          = CMake command mode.
      -i                          = Run in wizard mode.
      -L[A][H]                    = List non-advanced cached variables.
      -N                          = View mode only.
      -P <file>                   = Process script mode.
    

    Here are the available generators.

    Generators
    
    The following generators are available on this platform:
      Borland Makefiles           = Generates Borland makefiles.
      MSYS Makefiles              = Generates MSYS makefiles.
      MinGW Makefiles             = Generates a make file for use with
                                    mingw32-make.
      NMake Makefiles             = Generates NMake makefiles.
      Unix Makefiles              = Generates standard UNIX makefiles.
      Visual Studio 6             = Generates Visual Studio 6 project files.
      Visual Studio 7             = Generates Visual Studio .NET 2002 project
                                    files.
      Visual Studio 7 .NET 2003   = Generates Visual Studio .NET 2003 project
                                    files.
      Visual Studio 8 2005        = Generates Visual Studio .NET 2005 project
                                    files.
      Visual Studio 8 2005 Win64  = Generates Visual Studio .NET 2005 Win64
                                    project files.
      Visual Studio 9 2008        = Generates Visual Studio 9 2008 project files.
      Visual Studio 9 2008 Win64  = Generates Visual Studio 9 2008 Win64 project
                                    files.
      Watcom WMake                = Generates Watcom WMake makefiles.
      CodeBlocks - MinGW Makefiles= Generates CodeBlocks project files.
      CodeBlocks - Unix Makefiles = Generates CodeBlocks project files.
      Eclipse CDT4 - MinGW Makefiles
                                  = Generates Eclipse CDT 4.0 project files.
      Eclipse CDT4 - NMake Makefiles
                                  = Generates Eclipse CDT 4.0 project files.
      Eclipse CDT4 - Unix Makefiles
                                  = Generates Eclipse CDT 4.0 project files.  
    
    0 讨论(0)
  • 2021-02-06 02:42

    The simplest way I found to doing this was:
    % cmake --build "buildDir"
    you can also add --target and --config 'Debug|Release|...'

    0 讨论(0)
提交回复
热议问题