cmake
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
cmake [2012/11/05 14:35] – [Windows] mikael.ohman | cmake [2024/10/11 13:56] (current) – [CMake tutorial] 212.87.237.27 | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== CMake tutorial ====== | ====== CMake tutorial ====== | ||
+ | CMake is a cross-platform build system with many nice features. | ||
+ | It generates platform specific build files, such as Makefiles or Visual Studio project files during configuration. | ||
+ | It supports multiple targets, e.g. out-of-tree configurations and builds (simply configure from multiple build directories). | ||
===== Developers ===== | ===== Developers ===== | ||
To add new files to be compiled, you will need to edit one of the following files | To add new files to be compiled, you will need to edit one of the following files | ||
Line 23: | Line 26: | ||
===== Linux ===== | ===== Linux ===== | ||
Install CMake from the package system of your choice. | Install CMake from the package system of your choice. | ||
- | Create | + | Create |
mkdir -p ~/ | mkdir -p ~/ | ||
Line 31: | Line 34: | ||
ctest | ctest | ||
- | Instead of '' | + | Instead of '' |
Use the command '' | Use the command '' | ||
+ | |||
+ | To make configuration options, either use the '' | ||
+ | cmake -DCMAKE_CXX_FLAGS=" | ||
+ | | ||
+ | In order to use a different compiler you need to start a new clean configuration (from an empty directory) and supply the new compiler using '' | ||
+ | mkdir -p ~/ | ||
+ | cd ~/ | ||
+ | cmake -DCMAKE_CXX_COMPILER=clang++ ~/oofem/ | ||
+ | make | ||
+ | ctest | ||
+ | //**Note:** After initial configuration, | ||
+ | |||
+ | === Tips: === | ||
+ | * The build process usually hides the compiler command lines, to show them, use | ||
+ | |||
+ | $ make VERBOSE=1 | ||
==== CTest ==== | ==== CTest ==== | ||
Line 42: | Line 61: | ||
ctest -V | ctest -V | ||
- | ===== CPack ===== | + | ==== CPack ==== |
CPack allows you to make source and binary releases. You will first need to configure using '' | CPack allows you to make source and binary releases. You will first need to configure using '' | ||
Line 53: | Line 72: | ||
cpack -G ZIP | cpack -G ZIP | ||
... | ... | ||
+ | | ||
+ | ==== KDevelop ==== | ||
+ | The KDevelop IDE has build in support for CMake projects (and GIT). It includes a graphical configuration of multiple targets. Simply choose to import a project, and select CMakeLists.txt from the source directory | ||
+ | You can then open the configuration from the menu and make your choices: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ==== Python bindings ==== | ||
+ | With CMake, it is also possible to create shared library loadable as Python module. You need CMake version at least 2.8.8 and two additional cmake parameters ( '' | ||
+ | import sys | ||
+ | sys.path.append("/ | ||
+ | import liboofem | ||
+ | | ||
+ | a = liboofem.FloatArray(2) | ||
+ | a[1] = 15.0 | ||
+ | a[0] = 10.0 | ||
+ | print a[0], a[1] | ||
+ | |||
+ | | ||
===== Windows (Visual Studio) ===== | ===== Windows (Visual Studio) ===== | ||
- Install CMake | - Install CMake | ||
Line 59: | Line 97: | ||
- Press generate to produce project files for VS. | - Press generate to produce project files for VS. | ||
- | //Note: The build types (debug, release) are handled internally by Visual Studio, so no configuration option for this is presented in CMake// | + | To run the test suite, open the solution explorer in VS and " |
+ | |||
+ | //**Note:** The build types (debug, release) are handled internally by Visual Studio, so no configuration option for this is presented in CMake// | ||
+ | |||
+ | //**Note:** PETSc isn't easily built on windows, so support for parallel builds is still lacking// | ||
- | To run the test suite, open the solution explorer in VS and "build" | + | ===== Windows (MinGW) ===== |
+ | - Install CMake (tested with version 3.3.2) | ||
+ | - Install a new mingw-w64 (tested with version 5.2.0). It has support for 32-bit if necessary. MinGW-w64 version is selected from a [[http:// | ||
+ | - Run $ mingw32-make.exe -v | ||
+ | - Run a batch e.g. C:\Program Files (x86)\mingw-w64\i686-5.2.0-posix-dwarf-rt_v4-rev1\mingw-w64.bat which opens a new terminal. In that terminal, we have already PATH to mingw32-make.exe. If the PATH is already set up, any terminal would work. | ||
+ | - Create directory, e.g. mkdir C: | ||
+ | - Run cmake with flags, e.g. $ cmake.exe -G"MinGW Makefiles" | ||
+ | - Run mingw32-make.exe -j 3 to compile | ||
+ | - If you want smooth transfer of oofem.exe to another windows computer, you need to put all *.dll from C:\Program Files (x86)\mingw-w64\i686-5.2.0-posix-dwarf-rt_v4-rev1\mingw32\bin in the same directory as oofem.exe. | ||
+ | - Run $ctest for checking OOFEM tests |
cmake.1352122512.txt.gz · Last modified: 2012/11/05 14:35 by mikael.ohman