Difference between revisions of "CMake"

From Inkscape Wiki
Jump to navigation Jump to search
(markup fix)
(mark as outdated / moved to GitLab)
 
(19 intermediate revisions by 9 users not shown)
Line 1: Line 1:
'''Work is a on going to get this build system functional!'''
{{Outdated|message=Developer documentation has been moved to [https://gitlab.com/inkscape/inkscape/-/blob/master/doc/readme.md GitLab].}}
 
Cmake is a cross-platform build system know to work on all major platforms we support (*nix, Windows, OSX).
 
CMake is an extensible, open-source system that has many powerful features.
Those features include:
 
* Supports complex, large build environments. CMake has been proven in several large projects (KDE, ParaView, SecondLife, Scribus)
* Generates native build files (e.g., makefiles on Unix; workspaces/projects on MS Visual C++). Therefore, standard tools can be used on any platform/compiler configuration.
* Powerful system introspection abilities including the ability to find installed include files, libraries and executables. Also the ability to test the compiler for supported features.
* Integrated testing system called CTest.
* Integrated packaging system called CPack.
* Easy integration with CDash and Dart dashboard servers.
* Powerful scripting language with simple syntax.
* Supports in-place and out-of-place builds. Multiple compilation trees are possible from a single source tree.
* Can be easily extended to add new features.
* CMake is open source, under a liberal BSD license.
* CMake operates with a cache designed to be interfaced with a graphical editor. The cache provides optional interaction to conditionally control the build process.
* Ability to create Mac OSX Frameworks and Application Bundles.
* Supports adding complex custom rules to the build.
 
== How you can help ==
 
Right now we are going through all of the directories and sub-directories in the src folder and add a CMakeLists.txt file
 
== SIMPLE CmakeLists.txt ==
    SET(libavoid_SRC
    connector.cpp
    geometry.cpp
    graph.cpp
    makepath.cpp
    polyutil.cpp
    region.cpp
    router.cpp
    shape.cpp
    static.cpp
    timer.cpp
    vertices.cpp
    visibility.cpp
    )
 
== SIMPLE with single sub-directory Cmakelists.txt ==
 
    SET(libavoid_SRC
    connector.cpp
    geometry.cpp
    graph.cpp
    makepath.cpp
    polyutil.cpp
    region.cpp
    router.cpp
    shape.cpp
    static.cpp
    timer.cpp
    vertices.cpp
    visibility.cpp
    #Add our subdirectory sourcelist Var
    ${libavoid_parameter_SRC}
    )
    # this adds a single sub-directory
    ADD_SUBDIRECTORY(parameter)
 
== Testing/Using ==
 
Experience with Scribus '''strongly''' suggests using an "out of source"build arrangement. E.g.
 
<pre>
mkdir buildinkscape
cd buildinkscape
cmake ./path/to/inkscape/sources
</pre>
 
References:
[http://docs.scribus.net/index.php?lang=en&page=install4 Installing Scribus with Cmake] <br />
[http://docs.scribus.net/index.php?lang=en&page=install5 Installing with CMake on OSX]

Latest revision as of 11:57, 31 May 2025

This page is outdated. It is kept for historical reasons, e.g. to document specific decisions in Inkscape development.

Developer documentation has been moved to GitLab.