diff options
Diffstat (limited to 'src/CMakeLists.txt')
-rw-r--r-- | src/CMakeLists.txt | 413 |
1 files changed, 413 insertions, 0 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 0000000..41829e0 --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,413 @@ +# raptor/src/CMakeLists.txt +# +# Original listfile by Daniel Richard G. <skunk@iSKUNK.ORG> +# This file is in the public domain. +# +# Changes 01/20/15 J Kyle Medley +# + +IF(RAPTOR_PARSER_RDFA) + INCLUDE_DIRECTORIES(BEFORE ${CMAKE_CURRENT_SOURCE_DIR}/../librdfa) +ENDIF(RAPTOR_PARSER_RDFA) + +# ** Parser sources ** + +# XML parser enabled +IF(RAPTOR_PARSER_RDFXML) + SET(raptor_parser_rdfxml_sources raptor_rdfxml.c) + SET(raptor_libxml_libs ${LIBXML2_LIBRARIES}) +ENDIF(RAPTOR_PARSER_RDFXML) + +# N triples parser enabled +IF(RAPTOR_PARSER_NTRIPLES OR RAPTOR_PARSER_NQUADS) + SET(raptor_parser_ntriples_nquads_sources ntriples_parse.c raptor_ntriples.c) +ENDIF(RAPTOR_PARSER_NTRIPLES OR RAPTOR_PARSER_NQUADS) + +# Turtle parser enabled +IF(RAPTOR_PARSER_TURTLE OR RAPTOR_PARSER_TRIG) + SET(raptor_parser_turtle_trig_sources +# turtle_common.h + ${CMAKE_CURRENT_BINARY_DIR}/turtle_lexer.c +# turtle_lexer.h + ${CMAKE_CURRENT_BINARY_DIR}/turtle_parser.c +# turtle_parser.h + ) + + # Generate the turtle parser + ADD_CUSTOM_TARGET(turtle_tables_tgt DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/turtle_parser.tab.c) + ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/turtle_parser.tab.c + COMMAND ${BISON_EXECUTABLE} -o ${CMAKE_CURRENT_BINARY_DIR}/turtle_parser.c ${CMAKE_CURRENT_SOURCE_DIR}/turtle_parser.y + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/turtle_parser.y) + + ADD_CUSTOM_TARGET(turtle_parser_tgt DEPENDS turtle_tables_tgt ${CMAKE_CURRENT_BINARY_DIR}/turtle_parser.c ${CMAKE_CURRENT_BINARY_DIR}/turtle_parser.h) + ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/turtle_parser.c + COMMAND ${PERL_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/fix-bison.pl ${CMAKE_CURRENT_BINARY_DIR}/turtle_parser.c + DEPENDS turtle_tables_tgt) + + # Generate the turtle lexer + ADD_CUSTOM_TARGET(turtle_flex_tgt DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/turtle_lexer.t) + ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/turtle_lexer.t + COMMAND ${FLEX_EXECUTABLE} -o ${CMAKE_CURRENT_BINARY_DIR}/turtle_lexer.t ${CMAKE_CURRENT_SOURCE_DIR}/turtle_lexer.l + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/turtle_lexer.l) + + ADD_CUSTOM_TARGET(turtle_lexer_tgt DEPENDS turtle_flex_tgt) + ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/turtle_lexer.c + COMMAND ${PERL_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/fix-flex.pl ${CMAKE_CURRENT_BINARY_DIR}/turtle_lexer.t > ${CMAKE_CURRENT_BINARY_DIR}/turtle_lexer.c + COMMAND ${PERL_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/fix-flex.pl ${CMAKE_CURRENT_BINARY_DIR}/turtle_lexer.h > ${CMAKE_CURRENT_BINARY_DIR}/t + COMMAND ${CMAKE_COMMAND} -E rename ${CMAKE_CURRENT_BINARY_DIR}/t ${CMAKE_CURRENT_BINARY_DIR}/turtle_lexer.h + DEPENDS turtle_flex_tgt) +ENDIF(RAPTOR_PARSER_TURTLE OR RAPTOR_PARSER_TRIG) + +# RSS feed parser enabled +IF(RAPTOR_PARSER_RSS OR RAPTOR_SERIALIZER_RSS_1_0) + SET(raptor_rss_common_sources raptor_rss_common.c raptor_rss.h) +ENDIF(RAPTOR_PARSER_RSS OR RAPTOR_SERIALIZER_RSS_1_0) +IF(RAPTOR_PARSER_RSS) + SET(raptor_parser_rss_sources raptor_rss.c) + SET(raptor_libxml_libs ${LIBXML2_LIBRARIES}) +ENDIF(RAPTOR_PARSER_RSS) + +# GRDDL parser enabled +IF(RAPTOR_PARSER_GRDDL) + SET(raptor_parser_grddl_sources raptor_grddl.c) + SET(raptor_libxml_libs ${LIBXML2_LIBRARIES}) + SET(raptor_libxslt_libs ${LIBXSLT_LIBRARIES}) +ENDIF(RAPTOR_PARSER_GRDDL) + +# Guess which parser to use based on context +IF(RAPTOR_PARSER_GUESS) + SET(raptor_parser_guess_sources raptor_guess.c) +ENDIF(RAPTOR_PARSER_GUESS) + +# RDFA parser enabled +IF(RAPTOR_PARSER_RDFA) + SET(raptor_parser_rdfa_sources raptor_librdfa.c) +ENDIF(RAPTOR_PARSER_RDFA) + +# JSON parser enabled +IF(RAPTOR_PARSER_JSON) + SET(raptor_parser_json_sources raptor_json.c) +ENDIF(RAPTOR_PARSER_JSON) + +# ** Serializers ** + +IF(RAPTOR_SERIALIZER_RDFXML) + SET(raptor_serializer_rdfxml_sources raptor_serialize_rdfxml.c) +ENDIF(RAPTOR_SERIALIZER_RDFXML) +IF(RAPTOR_SERIALIZER_NTRIPLES OR RAPTOR_SERIALIZER_NQUADS) + SET(raptor_serializer_ntriples_nquads_sources raptor_serialize_ntriples.c) +ENDIF(RAPTOR_SERIALIZER_NTRIPLES OR RAPTOR_SERIALIZER_NQUADS) +IF(RAPTOR_SERIALIZER_RDFXML_ABBREV OR RAPTOR_SERIALIZER_TURTLE OR RAPTOR_SERIALIZER_MKR) + SET(raptor_serializer_abbrev_sources raptor_abbrev.c) +ENDIF(RAPTOR_SERIALIZER_RDFXML_ABBREV OR RAPTOR_SERIALIZER_TURTLE OR RAPTOR_SERIALIZER_MKR) +IF(RAPTOR_SERIALIZER_RDFXML_ABBREV) + SET(raptor_serializer_rdfxml_abbrev_sources raptor_serialize_rdfxmla.c) +ENDIF(RAPTOR_SERIALIZER_RDFXML_ABBREV) +IF(RAPTOR_SERIALIZER_TURTLE OR RAPTOR_SERIALIZER_MKR) + SET(raptor_serializer_turtle_sources raptor_serialize_turtle.c) +ENDIF(RAPTOR_SERIALIZER_TURTLE OR RAPTOR_SERIALIZER_MKR) +IF(RAPTOR_SERIALIZER_RSS_1_0) + SET(raptor_serializer_rss_1_0_sources raptor_serialize_rss.c) +ENDIF(RAPTOR_SERIALIZER_RSS_1_0) +IF(RAPTOR_SERIALIZER_DOT) + SET(raptor_serializer_dot_sources raptor_serialize_dot.c) +ENDIF(RAPTOR_SERIALIZER_DOT) +IF(RAPTOR_SERIALIZER_HTML) + SET(raptor_serializer_html_sources raptor_serialize_html.c) +ENDIF(RAPTOR_SERIALIZER_HTML) +IF(RAPTOR_SERIALIZER_JSON) + SET(raptor_serializer_json_sources raptor_serialize_json.c) + SET(raptor_yajl_libs ${YAJL_LIBRARIES}) +ENDIF(RAPTOR_SERIALIZER_JSON) + +IF(RAPTOR_WWW STREQUAL "curl") + SET(raptor_www_sources raptor_www_curl.c) + SET(raptor_www_libs ${CURL_LIBRARIES}) +ELSEIF(RAPTOR_WWW STREQUAL "fetch") + SET(raptor_www_sources raptor_www_libfetch.c) + #SET(raptor_www_libs ${FETCH_LIBRARIES}) +ELSEIF(RAPTOR_WWW STREQUAL "xml") + SET(raptor_www_sources raptor_www_libxml.c) + SET(raptor_www_libs ${LIBXML2_LIBRARIES}) +ENDIF(RAPTOR_WWW STREQUAL "curl") + +IF(RAPTOR_XML STREQUAL "libxml") + SET(raptor_libxml_sources raptor_libxml.c) + SET(raptor_libxml_libs ${LIBXML2_LIBRARIES}) +ENDIF(RAPTOR_XML STREQUAL "libxml") +IF(RAPTOR_PARSER_RDFA) + SET(raptor_librdfa_sources + ${CMAKE_CURRENT_SOURCE_DIR}/../librdfa/context.c + ${CMAKE_CURRENT_SOURCE_DIR}/../librdfa/curie.c + ${CMAKE_CURRENT_SOURCE_DIR}/../librdfa/iri.c + ${CMAKE_CURRENT_SOURCE_DIR}/../librdfa/language.c + ${CMAKE_CURRENT_SOURCE_DIR}/../librdfa/lists.c + ${CMAKE_CURRENT_SOURCE_DIR}/../librdfa/namespace.c + ${CMAKE_CURRENT_SOURCE_DIR}/../librdfa/rdfa.c + ${CMAKE_CURRENT_SOURCE_DIR}/../librdfa/rdfa_utils.c + ${CMAKE_CURRENT_SOURCE_DIR}/../librdfa/strtok_r.c + ${CMAKE_CURRENT_SOURCE_DIR}/../librdfa/subject.c + ${CMAKE_CURRENT_SOURCE_DIR}/../librdfa/triple.c +# ${CMAKE_SOURCE_DIR}/librdfa/rdfa.h +# ${CMAKE_SOURCE_DIR}/librdfa/rdfa_utils.h +# ${CMAKE_SOURCE_DIR}/librdfa/strtok_r.h + ) +ENDIF(RAPTOR_PARSER_RDFA) + +IF(NOT HAVE_STRCASECMP AND NOT HAVE_STRICMP) + SET(raptor_strcasecmp_sources strcasecmp.c) +ENDIF(NOT HAVE_STRCASECMP AND NOT HAVE_STRICMP) + +IF(RAPTOR_PARSEDATE) + SET(raptor_parsedate_sources ${CMAKE_CURRENT_BINARY_DIR}/parsedate.c) + + # Generate the date/time parser + ADD_CUSTOM_TARGET(parsedate_tables_tgt DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/parsedate.tab.c) + ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/parsedate.tab.c + COMMAND ${BISON_EXECUTABLE} -o ${CMAKE_CURRENT_BINARY_DIR}/parsedate.c ${CMAKE_CURRENT_SOURCE_DIR}/parsedate.y + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/parsedate.y) + + ADD_CUSTOM_TARGET(parsedate_tgt DEPENDS parsedate_tables_tgt ${CMAKE_CURRENT_BINARY_DIR}/parsedate.c ${CMAKE_CURRENT_BINARY_DIR}/parsedate.h) + ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/parsedate.c + COMMAND ${PERL_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/fix-bison.pl ${CMAKE_CURRENT_BINARY_DIR}/parsedate.c + DEPENDS parsedate_tables_tgt) +ENDIF(RAPTOR_PARSEDATE) + +IF(BUILD_SHARED_LIBS) + SET(LIB_TYPE SHARED) +ELSE(BUILD_SHARED_LIBS) + SET(LIB_TYPE STATIC) +ENDIF(BUILD_SHARED_LIBS) + +ADD_LIBRARY(raptor2 ${LIB_TYPE} + raptor_avltree.c + raptor_concepts.c + raptor_escaped.c + raptor_general.c + raptor_iostream.c + raptor_json_writer.c + raptor_locator.c + raptor_log.c + raptor_memstr.c + raptor_namespace.c + raptor_option.c + raptor_parse.c + raptor_qname.c + raptor_rfc2396.c + raptor_sax2.c + raptor_sequence.c + raptor_serialize.c + raptor_set.c + raptor_statement.c + raptor_stringbuffer.c + raptor_syntax_description.c + raptor_term.c + raptor_turtle_writer.c + raptor_unicode.c + raptor_uri.c + raptor_www.c + raptor_xml.c + raptor_xml_writer.c + snprintf.c + sort_r.c + turtle_common.c + ${raptor_parser_rdfxml_sources} + ${raptor_parser_ntriples_nquads_sources} + ${raptor_parser_turtle_trig_sources} + ${raptor_rss_common_sources} + ${raptor_parser_rss_sources} + ${raptor_parser_grddl_sources} + ${raptor_parser_guess_sources} + ${raptor_parser_rdfa_sources} + ${raptor_parser_json_sources} + ${raptor_serializer_rdfxml_sources} + ${raptor_serializer_ntriples_nquads_sources} + ${raptor_serializer_abbrev_sources} + ${raptor_serializer_rdfxml_abbrev_sources} + ${raptor_serializer_turtle_sources} + ${raptor_serializer_rss_1_0_sources} + ${raptor_serializer_dot_sources} + ${raptor_serializer_html_sources} + ${raptor_serializer_json_sources} + ${raptor_www_sources} + ${raptor_libxml_sources} + ${raptor_librdfa_sources} + ${raptor_strcasecmp_sources} + ${raptor_parsedate_sources} +) +IF(RAPTOR_PARSER_TURTLE OR RAPTOR_PARSER_TRIG) + add_dependencies(raptor2 turtle_parser_tgt turtle_lexer_tgt) +ENDIF() +IF(RAPTOR_PARSEDATE) + add_dependencies(raptor2 parsedate_tgt) +ENDIF() + +TARGET_LINK_LIBRARIES(raptor2 + ${raptor_libxslt_libs} + ${raptor_libxml_libs} + ${raptor_yajl_libs} + ${raptor_www_libs} +) + +SET_TARGET_PROPERTIES( + raptor2 + PROPERTIES + COMPILE_DEFINITIONS "LIBRDFA_IN_RAPTOR;RAPTOR_INTERNAL;${LIBXML2_DEFINITIONS};${LIBXSLT_DEFINITIONS}" +) + +ADD_EXECUTABLE(turtle_lexer_test turtle_lexer.c) +TARGET_LINK_LIBRARIES(turtle_lexer_test raptor2) + +IF(NOT WIN32 OR NOT BUILD_SHARED_LIBS) + # This currently cannot be built on Windows with DLL linkage + ADD_EXECUTABLE(turtle_parser_test turtle_parser.c) + TARGET_LINK_LIBRARIES(turtle_parser_test raptor2) + SET_TARGET_PROPERTIES( + turtle_parser_test + PROPERTIES + COMPILE_DEFINITIONS "RAPTOR_INTERNAL;STANDALONE" + ) +ENDIF(NOT WIN32 OR NOT BUILD_SHARED_LIBS) + +ADD_EXECUTABLE(raptor_parse_test raptor_parse.c) +TARGET_LINK_LIBRARIES(raptor_parse_test raptor2) +ADD_TEST(raptor_parse_test raptor_parse_test) + +ADD_EXECUTABLE(raptor_rfc2396_test raptor_rfc2396.c) +TARGET_LINK_LIBRARIES(raptor_rfc2396_test raptor2) +ADD_TEST(raptor_rfc2396_test raptor_rfc2396_test) + +ADD_EXECUTABLE(raptor_uri_test raptor_uri.c) +TARGET_LINK_LIBRARIES(raptor_uri_test raptor2) +ADD_TEST(raptor_uri_test raptor_uri_test) + +ADD_EXECUTABLE(raptor_namespace_test raptor_namespace.c) +TARGET_LINK_LIBRARIES(raptor_namespace_test raptor2) +ADD_TEST(raptor_namespace_test raptor_namespace_test) + +ADD_EXECUTABLE(strcasecmp_test strcasecmp.c) +TARGET_LINK_LIBRARIES(strcasecmp_test raptor2) +ADD_TEST(strcasecmp_test strcasecmp_test) + +ADD_EXECUTABLE(raptor_www_test raptor_www_test.c) +TARGET_LINK_LIBRARIES(raptor_www_test raptor2) +ADD_TEST(raptor_www_test raptor_www_test) + +ADD_EXECUTABLE(raptor_sequence_test raptor_sequence.c) +TARGET_LINK_LIBRARIES(raptor_sequence_test raptor2) +ADD_TEST(raptor_sequence_test raptor_sequence_test) + +ADD_EXECUTABLE(raptor_stringbuffer_test raptor_stringbuffer.c) +TARGET_LINK_LIBRARIES(raptor_stringbuffer_test raptor2) +ADD_TEST(raptor_stringbuffer_test raptor_stringbuffer_test) + +ADD_EXECUTABLE(raptor_iostream_test raptor_iostream.c) +TARGET_LINK_LIBRARIES(raptor_iostream_test raptor2) +ADD_TEST(raptor_iostream_test raptor_iostream_test) + +ADD_EXECUTABLE(raptor_xml_writer_test raptor_xml_writer.c) +TARGET_LINK_LIBRARIES(raptor_xml_writer_test raptor2) +ADD_TEST(raptor_xml_writer_test raptor_xml_writer_test) + +ADD_EXECUTABLE(raptor_turtle_writer_test raptor_turtle_writer.c) +TARGET_LINK_LIBRARIES(raptor_turtle_writer_test raptor2) +ADD_TEST(raptor_turtle_writer_test raptor_turtle_writer_test) + +ADD_EXECUTABLE(raptor_avltree_test raptor_avltree.c) +TARGET_LINK_LIBRARIES(raptor_avltree_test raptor2) +ADD_TEST(raptor_avltree_test raptor_avltree_test) + +ADD_EXECUTABLE(raptor_term_test raptor_term.c) +TARGET_LINK_LIBRARIES(raptor_term_test raptor2) +ADD_TEST(raptor_term_test raptor_term_test) + +ADD_EXECUTABLE(raptor_permute_test raptor_permute_test.c) +TARGET_LINK_LIBRARIES(raptor_permute_test raptor2) +ADD_TEST(raptor_permute_test raptor_permute_test) + +ADD_EXECUTABLE(raptor_snprintf_test snprintf.c) +TARGET_LINK_LIBRARIES(raptor_snprintf_test raptor2) +ADD_TEST(raptor_snprintf_test raptor_snprintf_test) + +ADD_EXECUTABLE(raptor_sort_r_test sort_r.c) +TARGET_LINK_LIBRARIES(raptor_sort_r_test raptor2) +ADD_TEST(raptor_sort_r_test raptor_sort_r_test) + +SET_TARGET_PROPERTIES( + turtle_lexer_test + #turtle_parser_test + raptor_parse_test + raptor_rfc2396_test + raptor_uri_test + raptor_namespace_test + strcasecmp_test + raptor_www_test + raptor_sequence_test + raptor_stringbuffer_test + raptor_iostream_test + raptor_xml_writer_test + raptor_turtle_writer_test + raptor_avltree_test + raptor_term_test + raptor_permute_test + raptor_snprintf_test + raptor_sort_r_test + PROPERTIES + COMPILE_DEFINITIONS "RAPTOR_INTERNAL;STANDALONE" +) + +IF(RAPTOR_PARSER_RDFXML) + ADD_EXECUTABLE(raptor_set_test raptor_set.c) + TARGET_LINK_LIBRARIES(raptor_set_test raptor2) + ADD_TEST(raptor_set_test raptor_set_test) + + ADD_EXECUTABLE(raptor_xml_test raptor_xml.c) + TARGET_LINK_LIBRARIES(raptor_xml_test raptor2) + ADD_TEST(raptor_xml_test raptor_xml_test) + + SET_TARGET_PROPERTIES( + raptor_set_test + raptor_xml_test + PROPERTIES + COMPILE_DEFINITIONS "RAPTOR_INTERNAL;STANDALONE" + ) +ENDIF(RAPTOR_PARSER_RDFXML) + +# Generate pkg-config metadata file +# +FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/raptor2.pc +"prefix=${CMAKE_INSTALL_PREFIX} +exec_prefix=\${prefix} +libdir=${CMAKE_INSTALL_FULL_LIBDIR} +includedir=${CMAKE_INSTALL_FULL_INCLUDEDIR}/raptor2 + +Name: Raptor RDF Parsing Library +Description: RDF Parser Toolkit Library +Version: ${VERSION} +Libs: -L\${libdir} -lraptor2 +Libs.private: ${raptor_libxslt_libs} ${raptor_libxml_libs} +Cflags: -I\${includedir} +") + +INSTALL(FILES + raptor.h + ${CMAKE_CURRENT_BINARY_DIR}/raptor2.h + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/raptor2 +) + +INSTALL(FILES + ${CMAKE_CURRENT_BINARY_DIR}/raptor2.pc + DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig +) + +INSTALL( + TARGETS raptor2 + EXPORT Raptor2Config + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} +) + +INSTALL(EXPORT Raptor2Config DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake) + +# end raptor/src/CMakeLists.txt |