summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt2
-rw-r--r--CMakeScripts/DefineDependsandFlags.cmake13
-rw-r--r--CMakeScripts/Modules/Findyaml.cmake2
-rw-r--r--src/main-cmdlinexact.cpp10
-rw-r--r--src/main.cpp15
5 files changed, 32 insertions, 10 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d928f2aac..300af32a7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -67,6 +67,7 @@ option(WITH_LIBCDR "Compile with support of libcdr for CorelDRAW Diagrams" ON)
option(WITH_LIBVISIO "Compile with support of libvisio for Microsoft Visio Diagrams" ON)
option(WITH_LIBWPG "Compile with support of libwpg for WordPerfect Graphics" ON)
option(WITH_NLS "Compile with Native Language Support (using gettext)" ON)
+option(WITH_YAML "Compile with YAML support (enables xverbs)" ON)
option(ENABLE_BINRELOC "Enable relocatable binaries" OFF)
@@ -255,6 +256,7 @@ message("WITH_LIBWPG: ${WITH_LIBWPG}")
message("WITH_NLS: ${WITH_NLS}")
message("WITH_OPENMP: ${WITH_OPENMP}")
message("WITH_PROFILING: ${WITH_PROFILING}")
+message("WITH_YAML: ${WITH_YAML}")
if(WIN32)
message("")
diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake
index 726e5d5db..daf5afd90 100644
--- a/CMakeScripts/DefineDependsandFlags.cmake
+++ b/CMakeScripts/DefineDependsandFlags.cmake
@@ -387,9 +387,16 @@ list(APPEND INKSCAPE_LIBS ${SIGC++_LDFLAGS})
list(APPEND INKSCAPE_CXX_FLAGS ${SIGC++_CFLAGS_OTHER})
-find_package(yaml REQUIRED)
-list(APPEND INKSCAPE_INCS_SYS ${YAML_INCLUDE_DIRS})
-list(APPEND INKSCAPE_LIBS ${YAML_LIBRARIES})
+find_package(yaml)
+if(YAML_FOUND)
+ set (WITH_YAML ON)
+ list(APPEND INKSCAPE_INCS_SYS ${YAML_INCLUDE_DIRS})
+ list(APPEND INKSCAPE_LIBS ${YAML_LIBRARIES})
+ add_definitions(-DWITH_YAML)
+else(YAML_FOUND)
+ unset(WITH_YAML OFF)
+ message(STATUS "Could not locate the yaml library headers: xverb feature will be disabled")
+endif()
list(REMOVE_DUPLICATES INKSCAPE_CXX_FLAGS)
foreach(flag ${INKSCAPE_CXX_FLAGS})
diff --git a/CMakeScripts/Modules/Findyaml.cmake b/CMakeScripts/Modules/Findyaml.cmake
index 0324c6b83..d3f00cd13 100644
--- a/CMakeScripts/Modules/Findyaml.cmake
+++ b/CMakeScripts/Modules/Findyaml.cmake
@@ -24,7 +24,7 @@ else (YAML_INCLUDE_DIR AND YAML_LIBRARIES)
ENDIF (PKG_CONFIG_FOUND)
ENDIF (NOT WIN32)
- FIND_PATH(YAML_INCLUDE_DIR yaml123.h
+ FIND_PATH(YAML_INCLUDE_DIR yaml.h
/usr/include
/usr/local/include
)
diff --git a/src/main-cmdlinexact.cpp b/src/main-cmdlinexact.cpp
index a3c9436bd..3dc83bc8f 100644
--- a/src/main-cmdlinexact.cpp
+++ b/src/main-cmdlinexact.cpp
@@ -52,7 +52,10 @@
#include <glibmm/i18n.h>
#include "main-cmdlinexact.h"
+#ifdef WITH_YAML
#include "yaml.h"
+#endif // WITH_YAML
+
#include "extension/system.h"
#include "file.h"
#include <glib.h>
@@ -312,6 +315,9 @@ typedef std::list<verb_info_t> verbs_list_t;
void
CmdLineXAction::createActionsFromYAML( gchar const *yaml_filename ) {
+#ifndef WITH_YAML
+ return;
+#else // WITH_YAML
FILE *fh = fopen(yaml_filename, "r");
if(fh == NULL) {
printf("Failed to open file!\n");
@@ -409,7 +415,7 @@ CmdLineXAction::createActionsFromYAML( gchar const *yaml_filename ) {
verb_info_t verb;
verb.xverb = true;
verb.args = vectorFromString((char *)token.data.scalar.value);
- if ((verb.args.size() > 1) && Verb::getbyid((char *)token.data.scalar.value))
+ if ((verb.args.size() > 1) && Verb::getbyid((char *)token.data.scalar.value, false))
verb.xverb = false;
verbs_list.push_back(verb);
}
@@ -529,7 +535,7 @@ CmdLineXAction::createActionsFromYAML( gchar const *yaml_filename ) {
}
fflush(stdout);
- return;
+#endif // WITH_YAML
}
diff --git a/src/main.cpp b/src/main.cpp
index d9f11ed8b..5b7dcc5ef 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -229,8 +229,10 @@ static gchar *sp_export_png_utf8 = NULL;
static gchar *sp_export_svg_utf8 = NULL;
static gchar *sp_global_printer_utf8 = NULL;
+#ifdef WITH_YAML
static gchar *sp_xverbs_yaml_utf8 = NULL;
static gchar *sp_xverbs_yaml = NULL;
+#endif // WITH_YAML
/**
@@ -305,12 +307,12 @@ struct poptOption options[] = {
POPT_ARG_STRING, NULL, SP_ARG_FILE,
N_("Open specified document(s) (option string may be excluded)"),
N_("FILENAME")},
-
- {"xverbs", 'B',
+#ifdef WITH_YAML
+ {"xverbs", 0,
POPT_ARG_STRING, &sp_xverbs_yaml, SP_ARG_XVERBS,
N_("xverbs command"),
N_("XVERBS_FILENAME")},
-
+#endif // WITH_YAML
{"print", 'p',
POPT_ARG_STRING, &sp_global_printer, SP_ARG_PRINT,
N_("Print document(s) to specified output file (use '| program' for pipe)"),
@@ -891,7 +893,9 @@ static int sp_common_main( int argc, char const **argv, GSList **flDest )
fixupSingleFilename( &sp_export_png, &sp_export_png_utf8 );
fixupSingleFilename( &sp_export_svg, &sp_export_svg_utf8 );
fixupSingleFilename( &sp_global_printer, &sp_global_printer_utf8 );
+#ifdef WITH_YAML
fixupSingleFilename( &sp_xverbs_yaml, &sp_xverbs_yaml_utf8 );
+#endif // WITH_YAML
}
else
{
@@ -901,9 +905,10 @@ static int sp_common_main( int argc, char const **argv, GSList **flDest )
sp_export_svg_utf8 = g_strdup( sp_export_svg );
if ( sp_global_printer )
sp_global_printer_utf8 = g_strdup( sp_global_printer );
+#ifdef WITH_YAML
if ( sp_xverbs_yaml )
sp_xverbs_yaml_utf8 = g_strdup( sp_xverbs_yaml );
-
+#endif // WITH_YAML
}
#ifdef WITH_DBUS
@@ -2145,6 +2150,7 @@ sp_process_args(poptContext ctx)
}
break;
}
+#ifdef WITH_YAML
case SP_ARG_XVERBS: {
gchar const *fn = poptGetOptArg(ctx);
if (fn != NULL) {
@@ -2153,6 +2159,7 @@ sp_process_args(poptContext ctx)
}
break;
}
+#endif // WITH_YAML
case SP_ARG_VERSION: {
printf("Inkscape %s (%s)\n", Inkscape::version_string, __DATE__);
exit(0);