Difference between revisions of "CMake"

From Inkscape Wiki
Jump to navigation Jump to search
(Added Cmake samples)
(mark as outdated / moved to GitLab)
 
(24 intermediate revisions by 12 users not shown)
Line 1: Line 1:
==
{{Outdated|message=Developer documentation has been moved to [https://gitlab.com/inkscape/inkscape/-/blob/master/doc/readme.md GitLab].}}
'''Work is a on going to get this build system functional.''' ==
 
 
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)
    * 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 ==
<nowiki>
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
)
</nowiki>
 
 
 
== 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)

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.