summaryrefslogtreecommitdiffstats
path: root/src/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'src/CMakeLists.txt')
-rw-r--r--src/CMakeLists.txt445
1 files changed, 445 insertions, 0 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
new file mode 100644
index 0000000..635c5af
--- /dev/null
+++ b/src/CMakeLists.txt
@@ -0,0 +1,445 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+# -----------------------------------------------------------------------------
+# Define the main source
+# -----------------------------------------------------------------------------
+
+set(inkscape_SRC
+ alignment-snapper.cpp
+ attribute-rel-css.cpp
+ attribute-rel-svg.cpp
+ attribute-rel-util.cpp
+ attribute-sort-util.cpp
+ attributes.cpp
+ auto-save.cpp
+ axis-manip.cpp
+ hsluv.cpp
+ color.cpp
+ composite-undo-stack-observer.cpp
+ conditions.cpp
+ conn-avoid-ref.cpp
+ console-output-undo-observer.cpp
+ context-fns.cpp
+ desktop-events.cpp
+ desktop-style.cpp
+ desktop.cpp
+ device-manager.cpp
+ distribution-snapper.cpp
+ document-subset.cpp
+ document-undo.cpp
+ document.cpp
+ ege-color-prof-tracker.cpp
+ event-log.cpp
+ extract-uri.cpp
+ file.cpp
+ file-update.cpp
+ filter-chemistry.cpp
+ filter-enums.cpp
+ gc-anchored.cpp
+ gc-finalized.cpp
+ gradient-chemistry.cpp
+ gradient-drag.cpp
+ guide-snapper.cpp
+ id-clash.cpp
+ inkscape.cpp
+ inkscape-version-info.cpp
+ layer-manager.cpp
+ line-geometry.cpp
+ line-snapper.cpp
+ media.cpp
+ message-context.cpp
+ message-stack.cpp
+ mod360.cpp
+ object-hierarchy.cpp
+ object-snapper.cpp
+ page-manager.cpp
+ path-chemistry.cpp
+ path-prefix.cpp
+ perspective-line.cpp
+ preferences.cpp
+ print.cpp
+ profile-manager.cpp
+ proj_pt.cpp
+ pure-transform.cpp
+ rdf.cpp
+ rubberband.cpp
+ selcue.cpp
+ selection-chemistry.cpp
+ selection-describer.cpp
+ selection.cpp
+ seltrans-handles.cpp
+ seltrans.cpp
+ snap-preferences.cpp
+ snap.cpp
+ snapped-curve.cpp
+ snapped-line.cpp
+ snapped-point.cpp
+ snapper.cpp
+ style-internal.cpp
+ style.cpp
+ text-chemistry.cpp
+ text-editing.cpp
+ transf_mat_3x4.cpp
+ unicoderange.cpp
+ vanishing-point.cpp
+ version.cpp
+
+ # -------
+ # Headers
+ alignment-snapper.h
+ attribute-rel-css.h
+ attribute-rel-svg.h
+ attribute-rel-util.h
+ attribute-sort-util.h
+ attributes.h
+ auto-save.h
+ axis-manip.h
+ bad-uri-exception.h
+ cms-color-types.h
+ cms-system.h
+ color-profile-cms-fns.h
+ color-rgba.h
+ hsluv.h
+ color.h
+ colorspace.h
+ composite-undo-stack-observer.h
+ conditions.h
+ conn-avoid-ref.h
+ console-output-undo-observer.h
+ context-fns.h
+ desktop-events.h
+ desktop-style.h
+ desktop.h
+ device-manager.h
+ distribution-snapper.h
+ document-subset.h
+ document-undo.h
+ document.h
+ ege-color-prof-tracker.h
+ enums.h
+ event-log.h
+ event.h
+ extract-uri.h
+ file.h
+ fill-or-stroke.h
+ filter-chemistry.h
+ filter-enums.h
+ gc-anchored.h
+ gc-finalized.h
+ gradient-chemistry.h
+ gradient-drag.h
+ guide-snapper.h
+ helper-fns.h
+ id-clash.h
+ inkscape-version.h
+ inkscape-version-info.h
+ inkscape.h
+ layer-manager.h
+ line-geometry.h
+ line-snapper.h
+ media.h
+ message-context.h
+ message-stack.h
+ message.h
+ mod360.h
+ number-opt-number.h
+ object-hierarchy.h
+ object-snapper.h
+ page-manager.h
+ path-chemistry.h
+ path-prefix.h
+ perspective-line.h
+ preferences-skeleton.h
+ preferences.h
+ print.h
+ profile-manager.h
+ proj_pt.h
+ pure-transform.h
+ rdf.h
+ rubberband.h
+ selcue.h
+ selection-chemistry.h
+ selection-describer.h
+ selection.h
+ seltrans-handles.h
+ seltrans.h
+ snap-candidate.h
+ snap-enums.h
+ snap-preferences.h
+ snap.h
+ snapped-curve.h
+ snapped-line.h
+ snapped-point.h
+ snapper.h
+ streq.h
+ strneq.h
+ style-enums.h
+ style-internal.h
+ style.h
+ syseq.h
+ text-chemistry.h
+ text-editing.h
+ text-tag-attributes.h
+ transf_mat_3x4.h
+ undo-stack-observer.h
+ unicoderange.h
+ vanishing-point.h
+ version.h
+
+ # TEMP Need to detangle inkscape-view from ui/interface.cpp
+ inkscape-window.h
+ inkscape-window.cpp
+
+ inkscape-application.h
+ inkscape-application.cpp
+ actions/actions-effect-data.h
+ actions/actions-effect-data.cpp
+ actions/actions-extra-data.h
+ actions/actions-extra-data.cpp
+ actions/actions-hint-data.h
+ actions/actions-hint-data.cpp
+
+ actions/actions-base.h
+ actions/actions-base.cpp
+ actions/actions-canvas-mode.h
+ actions/actions-canvas-mode.cpp
+ actions/actions-canvas-snapping.h
+ actions/actions-canvas-snapping.cpp
+ actions/actions-canvas-transform.h
+ actions/actions-canvas-transform.cpp
+ actions/actions-dialogs.cpp
+ actions/actions-dialogs.h
+ actions/actions-edit-document.h
+ actions/actions-edit-document.cpp
+ actions/actions-edit-window.h
+ actions/actions-edit-window.cpp
+ actions/actions-edit.h
+ actions/actions-edit.cpp
+ actions/actions-effect.h
+ actions/actions-effect.cpp
+ actions/actions-element-a.h
+ actions/actions-element-a.cpp
+ actions/actions-element-image.h
+ actions/actions-element-image.cpp
+ actions/actions-file-window.h
+ actions/actions-file-window.cpp
+ actions/actions-file.h
+ actions/actions-file.cpp
+ actions/actions-helper.h
+ actions/actions-helper.cpp
+ actions/actions-help-url.h
+ actions/actions-help-url.cpp
+ actions/actions-hide-lock.h
+ actions/actions-hide-lock.cpp
+ actions/actions-layer.h
+ actions/actions-layer.cpp
+ actions/actions-node-align.h
+ actions/actions-node-align.cpp
+ actions/actions-object.h
+ actions/actions-object.cpp
+ actions/actions-object-align.h
+ actions/actions-object-align.cpp
+ actions/actions-output.h
+ actions/actions-output.cpp
+ actions/actions-paths.h
+ actions/actions-paths.cpp
+ actions/actions-selection-object.h
+ actions/actions-selection-object.cpp
+ actions/actions-selection-window.h
+ actions/actions-selection-window.cpp
+ actions/actions-selection.h
+ actions/actions-selection.cpp
+ actions/actions-text.h
+ actions/actions-text.cpp
+ actions/actions-tools.h
+ actions/actions-tools.cpp
+ actions/actions-tutorial.h
+ actions/actions-tutorial.cpp
+ actions/actions-transform.h
+ actions/actions-transform.cpp
+ actions/actions-undo-document.h
+ actions/actions-undo-document.cpp
+ actions/actions-view-mode.h
+ actions/actions-view-mode.cpp
+ actions/actions-view-window.h
+ actions/actions-view-window.cpp
+ actions/actions-window.h
+ actions/actions-window.cpp
+ actions/actions-pages.h
+ actions/actions-pages.cpp
+
+ inkview-application.h
+ inkview-application.cpp
+ inkview-window.h
+ inkview-window.cpp
+)
+
+# -----------------------------------------------------------------------------
+# Generate version file
+# -----------------------------------------------------------------------------
+
+# configure with values known at configure time
+configure_file(inkscape-version.cpp.in ${CMAKE_BINARY_DIR}/src/inkscape-version.cpp.in @ONLY)
+
+# configure further at build time (always built as run_always.txt is never actually created)
+add_custom_command(
+ OUTPUT inkscape-version.cpp run_always.txt
+ COMMAND ${CMAKE_COMMAND}
+ -DINKSCAPE_SOURCE_DIR=${CMAKE_SOURCE_DIR}
+ -DINKSCAPE_BINARY_DIR=${CMAKE_BINARY_DIR}
+ -P ${CMAKE_SOURCE_DIR}/CMakeScripts/inkscape-version.cmake
+ COMMENT "Generating inkscape-version.cpp")
+
+list(APPEND inkscape_SRC
+ ${CMAKE_BINARY_DIR}/src/inkscape-version.cpp
+)
+
+
+# -----------------------------------------------------------------------------
+# Load in subdirectories
+# -----------------------------------------------------------------------------
+
+# All folders for internal inkscape
+# these call add_inkscape_source
+add_subdirectory(actions)
+add_subdirectory(debug)
+add_subdirectory(display)
+add_subdirectory(extension)
+add_subdirectory(helper)
+add_subdirectory(include)
+add_subdirectory(io)
+add_subdirectory(live_effects)
+add_subdirectory(object)
+add_subdirectory(path)
+add_subdirectory(svg)
+add_subdirectory(trace)
+add_subdirectory(ui)
+add_subdirectory(util)
+add_subdirectory(widgets)
+add_subdirectory(xml)
+
+# Directories containing lists files that describe building internal libraries
+add_subdirectory(3rdparty)
+add_subdirectory(inkgc)
+add_subdirectory(livarot)
+add_subdirectory(libnrtype)
+include_directories("3rdparty/adaptagrams")
+
+get_property(inkscape_global_SRC GLOBAL PROPERTY inkscape_global_SRC)
+
+set(inkscape_SRC
+ ${inkscape_global_SRC}
+ ${inkscape_SRC}
+)
+
+# -----------------------------------------------------------------------------
+# Setup the executable
+# -----------------------------------------------------------------------------
+set(main_SRC
+ inkscape-main.cpp
+)
+set(view_SRC
+ inkview-main.cpp
+)
+
+if(WIN32)
+ # Configure and add the platform specific resource files (enabling the app icon).
+ string(TIMESTAMP COPYRIGHT_YEAR %Y)
+
+ set(FILE_NAME inkscape)
+ set(PROGRAM_NAME Inkscape)
+ set(PROGRAM_DESCRIPTION "Inkscape vector graphics editor")
+ configure_file(inkscape.rc ${CMAKE_BINARY_DIR}/src/inkscape.rc)
+ configure_file(inkscape-manifest.xml ${CMAKE_BINARY_DIR}/src/inkscape-manifest.xml)
+ list(APPEND main_SRC ${CMAKE_BINARY_DIR}/src/inkscape.rc)
+
+ set(FILE_NAME inkview)
+ set(PROGRAM_NAME Inkview)
+ set(PROGRAM_DESCRIPTION "Inkview vector graphics viewer")
+ configure_file(inkscape.rc ${CMAKE_BINARY_DIR}/src/inkview.rc)
+ configure_file(inkscape-manifest.xml ${CMAKE_BINARY_DIR}/src/inkview-manifest.xml)
+ list(APPEND view_SRC ${CMAKE_BINARY_DIR}/src/inkview.rc)
+endif()
+
+# make executables for inkscape and inkview
+add_executable(inkscape ${main_SRC})
+add_executable(inkview ${view_SRC})
+if(WIN32)
+ # Make the same executables again, but this time as console application (GUI applications can't print to the console)
+ add_executable(inkscape_com ${main_SRC})
+ set_target_properties(inkscape_com
+ PROPERTIES
+ LINK_FLAGS "-mconsole"
+ OUTPUT_NAME "inkscape"
+ SUFFIX ".com")
+ add_executable(inkview_com ${view_SRC})
+ set_target_properties(inkview_com
+ PROPERTIES
+ LINK_FLAGS "-mconsole"
+ OUTPUT_NAME "inkview"
+ SUFFIX ".com")
+endif()
+
+
+set(INKSCAPE_TARGET_LIBS
+ # order from automake
+ #sp_LIB
+ #nrtype_LIB
+ #inkscape_LIB
+ #sp_LIB # annoying, we need both!
+ nrtype_LIB # annoying, we need both!
+ croco_LIB
+ avoid_LIB
+ cola_LIB
+ vpsc_LIB
+ livarot_LIB
+ uemf_LIB
+ depixelize_LIB
+ autotrace_LIB
+ util_LIB
+ gc_LIB
+)
+
+# Build everything except main and inkview.c in a shared library.
+add_library(inkscape_base ${inkscape_SRC} ${sp_SRC})
+
+# added so that locally installed inkscape can find lib2geom if it's not installed systemwide
+if(NOT APPLE)
+ set_target_properties(inkscape_base PROPERTIES INSTALL_RPATH "$ORIGIN/..")
+else()
+ set_target_properties(inkscape_base PROPERTIES INSTALL_RPATH "@loader_path/..")
+endif()
+
+if(WITH_INTERNAL_CAIRO)
+add_dependencies(inkscape_base cairo_ext)
+endif()
+
+target_link_libraries(inkscape_base PUBLIC Boost::filesystem)
+
+# Link the inkscape_base library against all external dependencies
+target_link_libraries(inkscape_base
+ PRIVATE
+ ${INKSCAPE_TARGET_LIBS}
+ 2Geom::2geom
+ PUBLIC
+ ${INKSCAPE_LIBS}
+ )
+target_include_directories(inkscape_base INTERFACE ${2Geom_INCLUDE_DIRS})
+
+# Link inkscape and inkview against inkscape_base
+target_link_libraries(inkscape inkscape_base)
+target_link_libraries(inkview inkscape_base)
+if(WIN32)
+ target_link_libraries(inkscape_com inkscape_base)
+ target_link_libraries(inkview_com inkscape_base)
+endif()
+
+
+
+#Define the installation
+install(TARGETS inkscape inkview RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+if(WIN32)
+ install(TARGETS inkscape_com inkview_com)
+endif()
+if(BUILD_SHARED_LIBS)
+ install(TARGETS inkscape_base LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/inkscape")
+endif()