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:45] – 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 '' | ||
| Line 43: | Line 46: | ||
| make | make | ||
| ctest | ctest | ||
| - | //**Note:** After initial configuration, | + | //**Note:** After initial configuration, |
| + | |||
| + | === Tips: === | ||
| + | * The build process usually hides the compiler command lines, to show them, use | ||
| + | |||
| + | $ make VERBOSE=1 | ||
| ==== CTest ==== | ==== CTest ==== | ||
| Some useful options for ctest include running the tests in parallel; | Some useful options for ctest include running the tests in parallel; | ||
| Line 63: | 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 69: | 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.1352123106.txt.gz · Last modified: 2012/11/05 14:45 by mikael.ohman