diff --git a/CMakeLists.txt b/CMakeLists.txt deleted file mode 100644 index 1d3b8ef5..00000000 --- a/CMakeLists.txt +++ /dev/null @@ -1,586 +0,0 @@ -# -# CMakeLists.txt file for arabica xml -# author: Gunther Laure -# - -cmake_minimum_required (VERSION 2.8) - -project(arabica) - -set(LIBNAME arabica) - -# -# Enable/Disable example build -# -option(BUILD_ARABICA_EXAMPLES "Build all arabica examples" ON) - - -# -# Enable target folders in Visual Studio and other IDEs -set_property(GLOBAL - PROPERTY USE_FOLDERS ON) - - -# -# Set the used xml backend -# options: USE_MSXML, USE_EXPAT, USE_LIBXML2, USE_XERCES -# default for windows: MSXML -# default for linux: EXPAT -if(NOT ARABICA_XML_BACKEND) - if(WIN32) - set(ARABICA_XML_BACKEND USE_MSXML) - endif() - if(LINUX) - set(ARABICA_XML_BACKEND USE_EXPAT) - endif() -endif() - -# -# Find boost -if(NOT TARGET boost) - ## BOOST_ROOT has to be set correctly - if(NOT DEFINED BOOST_ROOT) - set(BOOST_ROOT "../boost") # reasonable default: boost is in a parallel directory - endif() - find_package(Boost) -endif() - -# -# Find expat -if(ARABICA_XML_BACKEND STREQUAL USE_EXPAT) - if(NOT TARGET expat) - find_package(EXPAT REQUIRED) - set(ADDITIONAL_INC ${EXPAT_INCLUDE_DIRS}) - set(ADDITIONAL_LIB ${EXPAT_LIBRARY}) - else() - # set externally - set(ADDITIONAL_INC ${EXPAT_INCLUDE_DIRS}) - set(ADDITIONAL_LIB expat) - endif() -endif() - -# -# find libxml2: LIBXML2_INCLUDE_DIR LIBXML2_LIBRARIES -if(ARABICA_XML_BACKEND STREQUAL USE_LIBXML2) - find_package(LibXml2) - set(ADDITIONAL_INC ${LIBXML2_INCLUDE_DIR}) - set(ADDITIONAL_LIB ${LIBXML2_LIBRARIES}) -endif() - - -# -# platform check -# -# Check for 64 bit build -if(CMAKE_SIZEOF_VOID_P EQUAL 8) - set(BUILD_X64 TRUE) - set(BUILD_X86 FALSE) -else() - set(BUILD_X64 FALSE) - set(BUILD_X86 TRUE) -endif() - - -if(BUILD_ARABICA_EXAMPLES) - message(STATUS "Building ${LIBNAME} with ${ARABICA_XML_BACKEND} compile flag with examples") -else() - message(STATUS "Building ${LIBNAME} with ${ARABICA_XML_BACKEND} compile flag library only") -endif() - - -include_directories ( - SYSTEM - ${ADDITIONAL_INC} - ${Boost_INCLUDE_DIRS} - ) - -include_directories ( - include - ) - - -# -# configuration input file -set(ARABICA_CONFIG_FILE - vs7/ArabicaConfig.S -) -source_group("Config Input" FILES ${ARABICA_CONFIG_FILE}) - -set(GENERATED_HEADER_FILES - include/SAX/ArabicaConfig.hpp -) -source_group("Generated Header Files" FILES ${GENERATED_HEADER_FILES}) - -set(PUBLIC_HEADER_FILES - include/SAX/AttributeList.hpp - include/SAX/Attributes.hpp - include/SAX/ContentHandler.hpp - include/SAX/DocumentHandler.hpp - include/SAX/DTDHandler.hpp - include/SAX/EntityResolver.hpp - include/SAX/ErrorHandler.hpp - include/SAX/HandlerBase.hpp - include/SAX/InputSource.hpp - include/SAX/IStreamHandle.hpp - include/SAX/Locator.hpp - include/SAX/Parser.hpp - include/SAX/ParserConfig.hpp - include/SAX/SAXException.hpp - include/SAX/saxfwd.hpp - include/SAX/SAXNotRecognizedException.hpp - include/SAX/SAXNotSupportedException.hpp - include/SAX/SAXParseException.hpp - include/SAX/XMLFilter.hpp - include/SAX/XMLReader.hpp - include/SAX/ext/Attributes2.hpp - include/SAX/ext/DeclHandler.hpp - include/SAX/ext/DefaultHandler2.hpp - include/SAX/ext/LexicalHandler.hpp - include/SAX/ext/Locator2.hpp - include/SAX/ext/ProgressiveParser.hpp - include/SAX/filter/NamespaceTracker.hpp - include/SAX/filter/TextCoalescer.hpp - include/SAX/filter/TextOnly.hpp - include/SAX/filter/Writer.hpp - include/SAX/filter/XMLBaseTracker.hpp - include/SAX/helpers/AttributeDefaults.hpp - include/SAX/helpers/AttributeListImpl.hpp - include/SAX/helpers/AttributesImpl.hpp - include/SAX/helpers/AttributeTypes.hpp - include/SAX/helpers/CatchErrorHandler.hpp - include/SAX/helpers/DefaultHandler.hpp - include/SAX/helpers/FeatureNames.hpp - include/SAX/helpers/InputSourceResolver.hpp - include/SAX/helpers/LocatorImpl.hpp - include/SAX/helpers/NamespaceSupport.hpp - include/SAX/helpers/ParserAdaptor.hpp - include/SAX/helpers/PropertyNames.hpp - include/SAX/helpers/XMLBaseSupport.hpp - include/SAX/helpers/XMLFilterImpl.hpp - include/SAX/parsers/saxgarden.hpp - include/SAX/wrappers/saxexpat.hpp - include/SAX/wrappers/saxlibxml2.hpp - include/SAX/wrappers/saxmsxml2.hpp - include/SAX/wrappers/saxxerces.hpp - include/SAX/wrappers/XercesFeatureNames.hpp - include/SAX/wrappers/XercesPropertyNames.hpp - include/DOM/Attr.hpp - include/DOM/CDATASection.hpp - include/DOM/CharacterData.hpp - include/DOM/Comment.hpp - include/DOM/Document.hpp - include/DOM/DocumentFragment.hpp - include/DOM/DocumentType.hpp - include/DOM/DOMException.hpp - include/DOM/DOMImplementation.hpp - include/DOM/Element.hpp - include/DOM/Entity.hpp - include/DOM/EntityReference.hpp - include/DOM/NamedNodeMap.hpp - include/DOM/Node.hpp - include/DOM/NodeList.hpp - include/DOM/Notation.hpp - include/DOM/ProcessingInstruction.hpp - include/DOM/Proxy.hpp - include/DOM/Text.hpp - include/DOM/DualMode/DualMode.hpp - include/DOM/Events/DocumentEvent.hpp - include/DOM/Events/Event.hpp - include/DOM/Events/EventException.hpp - include/DOM/Events/EventListener.hpp - include/DOM/Events/EventTarget.hpp - include/DOM/Events/MutationEvent.hpp - include/DOM/SAX2DOM/DocumentTypeImpl.hpp - include/DOM/SAX2DOM/SAX2DOM.hpp - include/DOM/Simple/AttrImpl.hpp - include/DOM/Simple/AttrMap.hpp - include/DOM/Simple/AttrNSImpl.hpp - include/DOM/Simple/CDATASectionImpl.hpp - include/DOM/Simple/CharacterDataImpl.hpp - include/DOM/Simple/CommentImpl.hpp - include/DOM/Simple/DocumentFragmentImpl.hpp - include/DOM/Simple/DocumentImpl.hpp - include/DOM/Simple/DocumentTypeImpl.hpp - include/DOM/Simple/DOMImplementation.hpp - include/DOM/Simple/ElementByTagImpl.hpp - include/DOM/Simple/ElementImpl.hpp - include/DOM/Simple/ElementNSImpl.hpp - include/DOM/Simple/EntityImpl.hpp - include/DOM/Simple/EntityReferenceImpl.hpp - include/DOM/Simple/Helpers.hpp - include/DOM/Simple/NamedNodeMapImpl.hpp - include/DOM/Simple/NodeImpl.hpp - include/DOM/Simple/NotationImpl.hpp - include/DOM/Simple/ProcessingInstructionImpl.hpp - include/DOM/Simple/TextImpl.hpp - include/DOM/Traversal/DocumentTraversal.hpp - include/DOM/Traversal/DocumentTraversalImpl.hpp - include/DOM/Traversal/NodeFilter.hpp - include/DOM/Traversal/NodeIterator.hpp - include/DOM/Traversal/TraversalImpl.hpp - include/DOM/Traversal/TreeWalker.hpp - include/DOM/Traversal/TreeWalkerImpl.hpp - include/DOM/io/Stream.hpp - include/XPath/XPath.hpp - include/XPath/impl/xpath_arithmetic.hpp - include/XPath/impl/xpath_ast.hpp - include/XPath/impl/xpath_ast_ids.hpp - include/XPath/impl/xpath_axis_enumerator.hpp - include/XPath/impl/xpath_compile_context.hpp - include/XPath/impl/xpath_execution_context.hpp - include/XPath/impl/xpath_expression.hpp - include/XPath/impl/xpath_expression_impl.hpp - include/XPath/impl/xpath_function.hpp - include/XPath/impl/xpath_function_holder.hpp - include/XPath/impl/xpath_function_resolver.hpp - include/XPath/impl/xpath_grammar.hpp - include/XPath/impl/xpath_logical.hpp - include/XPath/impl/xpath_match.hpp - include/XPath/impl/xpath_match_rewrite.hpp - include/XPath/impl/xpath_namespace_context.hpp - include/XPath/impl/xpath_namespace_node.hpp - include/XPath/impl/xpath_node_test.hpp - include/XPath/impl/xpath_object.hpp - include/XPath/impl/xpath_parser.hpp - include/XPath/impl/xpath_relational.hpp - include/XPath/impl/xpath_resolver_holder.hpp - include/XPath/impl/xpath_step.hpp - include/XPath/impl/xpath_union.hpp - include/XPath/impl/xpath_value.hpp - include/XPath/impl/xpath_variable.hpp - include/XPath/impl/xpath_variable_resolver.hpp - include/Arabica/getparam.hpp - include/Arabica/StringAdaptor.hpp - include/Arabica/stringadaptortag.hpp - include/XML/escaper.hpp - include/XML/QName.hpp - include/XML/strings.hpp - include/XML/XMLCharacterClasses.hpp - include/io/convert_adaptor.hpp - include/io/convertstream.hpp - include/io/socket_stream.hpp - include/io/uri.hpp - include/convert/base64codecvt.hpp - include/convert/impl/codecvt_specialisations.hpp - include/convert/impl/iso88591_utf8.hpp - include/convert/iso88591utf8codecvt.hpp - include/convert/rot13codecvt.hpp - include/convert/impl/ucs2_utf16.hpp - include/convert/impl/ucs2_utf8.hpp - include/convert/ucs2utf8codecvt.hpp - include/convert/utf16beucs2codecvt.hpp - include/convert/utf16leucs2codecvt.hpp - include/convert/utf16utf8codecvt.hpp - include/convert/utf8iso88591codecvt.hpp - include/convert/utf8ucs2codecvt.hpp - include/text/normalize_whitespace.hpp - include/text/UnicodeCharacters.hpp - include/Taggle/impl/Element.hpp - include/Taggle/impl/ElementType.hpp - include/Taggle/impl/html/HTMLModels.hpp - include/Taggle/impl/html/HTMLScanner.hpp - include/Taggle/impl/html/HTMLSchema.hpp - include/Taggle/impl/Parser.hpp - include/Taggle/impl/ScanHandler.hpp - include/Taggle/impl/Scanner.hpp - include/Taggle/impl/Schema.hpp - include/Taggle/impl/SchemaImpl.hpp - include/Taggle/Taggle.hpp - include/XSLT/XSLT.hpp - include/XSLT/impl/xslt_apply_imports.hpp - include/XSLT/impl/xslt_apply_templates.hpp - include/XSLT/impl/xslt_attribute.hpp - include/XSLT/impl/xslt_call_template.hpp - include/XSLT/impl/xslt_choose.hpp - include/XSLT/impl/xslt_comment.hpp - include/XSLT/impl/xslt_compilation_context.hpp - include/XSLT/impl/xslt_compiled_stylesheet.hpp - include/XSLT/impl/xslt_copy.hpp - include/XSLT/impl/xslt_element.hpp - include/XSLT/impl/xslt_execution_context.hpp - include/XSLT/impl/xslt_for_each.hpp - include/XSLT/impl/xslt_functions.hpp - include/XSLT/impl/xslt_if.hpp - include/XSLT/impl/xslt_inline_element.hpp - include/XSLT/impl/xslt_item.hpp - include/XSLT/impl/xslt_key.hpp - include/XSLT/impl/xslt_message.hpp - include/XSLT/impl/xslt_namespace_stack.hpp - include/XSLT/impl/xslt_output.hpp - include/XSLT/impl/xslt_param.hpp - include/XSLT/impl/xslt_precedence.hpp - include/XSLT/impl/xslt_processing_instruction.hpp - include/XSLT/impl/xslt_qname.hpp - include/XSLT/impl/xslt_sink.hpp - include/XSLT/impl/xslt_sort.hpp - include/XSLT/impl/xslt_stylesheet.hpp - include/XSLT/impl/xslt_stylesheet_compiler.hpp - include/XSLT/impl/xslt_stylesheet_parser.hpp - include/XSLT/impl/xslt_template.hpp - include/XSLT/impl/xslt_text.hpp - include/XSLT/impl/xslt_top_level_param.hpp - include/XSLT/impl/xslt_value_of.hpp - include/XSLT/impl/xslt_variable.hpp - include/XSLT/impl/xslt_variable_impl.hpp - include/XSLT/impl/xslt_variable_stack.hpp - include/XSLT/impl/xslt_with_param.hpp - include/XSLT/impl/handler/xslt_apply_imports_handler.hpp - include/XSLT/impl/handler/xslt_apply_templates_handler.hpp - include/XSLT/impl/handler/xslt_attribute_handler.hpp - include/XSLT/impl/handler/xslt_call_template_handler.hpp - include/XSLT/impl/handler/xslt_choose_handler.hpp - include/XSLT/impl/handler/xslt_comment_handler.hpp - include/XSLT/impl/handler/xslt_constants.hpp - include/XSLT/impl/handler/xslt_copy_handler.hpp - include/XSLT/impl/handler/xslt_create_handler.hpp - include/XSLT/impl/handler/xslt_element_handler.hpp - include/XSLT/impl/handler/xslt_for_each_handler.hpp - include/XSLT/impl/handler/xslt_if_handler.hpp - include/XSLT/impl/handler/xslt_include_handler.hpp - include/XSLT/impl/handler/xslt_inline_element_handler.hpp - include/XSLT/impl/handler/xslt_item_container_handler.hpp - include/XSLT/impl/handler/xslt_key_handler.hpp - include/XSLT/impl/handler/xslt_message_handler.hpp - include/XSLT/impl/handler/xslt_namespace_alias_handler.hpp - include/XSLT/impl/handler/xslt_output_handler.hpp - include/XSLT/impl/handler/xslt_processing_instruction_handler.hpp - include/XSLT/impl/handler/xslt_sort_handler.hpp - include/XSLT/impl/handler/xslt_template_handler.hpp - include/XSLT/impl/handler/xslt_text_handler.hpp - include/XSLT/impl/handler/xslt_value_of_handler.hpp - include/XSLT/impl/handler/xslt_value_validation.hpp - include/XSLT/impl/handler/xslt_variable_handler.hpp - include/XSLT/impl/handler/xslt_with_param_handler.hpp - ) -source_group("Header Files" FILES ${PUBLIC_HEADER_FILES}) - -set(SOURCE_FILES - src/arabica.cpp - src/XML/XMLCharacterClasses.cpp - src/SAX/helpers/InputSourceResolver.cpp - src/io/uri.cpp - src/convert/base64codecvt.cpp - src/convert/impl/iso88591_utf8.cpp - src/convert/iso88591utf8codecvt.cpp - src/convert/rot13codecvt.cpp - src/convert/impl/ucs2_utf16.cpp - src/convert/impl/ucs2_utf8.cpp - src/convert/ucs2utf8codecvt.cpp - src/convert/utf16beucs2codecvt.cpp - src/convert/utf16leucs2codecvt.cpp - src/convert/utf16utf8codecvt.cpp - src/convert/utf8iso88591codecvt.cpp - src/convert/utf8ucs2codecvt.cpp - src/taggle/Schema.cpp -) -source_group("Source Files" FILES ${SOURCE_FILES}) - - -add_library (${LIBNAME} STATIC - ${ARABICA_CONFIG_FILE} - ${GENERATED_HEADER_FILES} - ${PUBLIC_HEADER_FILES} - ${SOURCE_FILES} -) - - -set_property(TARGET ${LIBNAME} - APPEND - PROPERTY COMPILE_DEFINITIONS - ARABICA_NOT_USE_PRAGMA_LINKER_OPTIONS - ) - -set_source_files_properties(${ARABICA_CONFIG_FILE} PROPERTIES HEADER_FILE_ONLY TRUE) - - -# -# Configure XML backend -if(MSVC) - # - # Preprocess configuration file for windows - add_custom_command(OUTPUT include/SAX/ArabicaConfig.hpp - COMMAND ${CMAKE_CXX_COMPILER} /TC /EP -D ${ARABICA_XML_BACKEND} ${CMAKE_CURRENT_LIST_DIR}/${ARABICA_CONFIG_FILE} > ${CMAKE_CURRENT_LIST_DIR}/include/SAX/ArabicaConfig.hpp - ) -endif() -if(CMAKE_COMPILER_IS_GNUCC) - # - # Preprocess configuration file for Linux/GCC - add_custom_command(OUTPUT include/SAX/ArabicaConfig.hpp - COMMAND ${CMAKE_CXX_COMPILER} -E -D ${ARABICA_XML_BACKEND} ${CMAKE_CURRENT_LIST_DIR}/${ARABICA_CONFIG_FILE} > ${CMAKE_CURRENT_LIST_DIR}/include/SAX/ArabicaConfig.hpp - ) -endif() - - - -# VS2010 bug for 64bit builds -if(MSVC) - if(BUILD_X64) - set_property(TARGET ${LIBNAME} - APPEND - PROPERTY STATIC_LIBRARY_FLAGS - /MACHINE:X64 - ) - endif() -endif() - - -if(MSVC) - # link socket library in windows - target_link_libraries(${LIBNAME} - ws2_32.lib - ) -endif() - -# link chosen backend -target_link_libraries(${LIBNAME} - ${ADDITIONAL_LIB} -) - - -# -# Add build dependency to boost if boost is part of the same project -if(TARGET boost) - add_dependencies(${LIBNAME} boost) -endif() - -set_target_properties(${LIBNAME} PROPERTIES FOLDER "3rdparty/arabica") - - -if(BUILD_ARABICA_EXAMPLES) - - # - # Example Dom writer: - set(EXAMPLE_NAME dom_writer) - add_executable(${EXAMPLE_NAME} examples/DOM/DOMWriter.cpp) - set_property(TARGET ${EXAMPLE_NAME} - APPEND PROPERTY COMPILE_DEFINITIONS - ARABICA_NOT_USE_PRAGMA_LINKER_OPTIONS - ) - target_link_libraries(${EXAMPLE_NAME} - arabica - ) - set_target_properties(${EXAMPLE_NAME} PROPERTIES FOLDER "3rdparty/arabica_examples") - - # - # Example SAX pyx: - set(EXAMPLE_NAME pyx) - add_executable(${EXAMPLE_NAME} examples/SAX/pyx.cpp) - set_property(TARGET ${EXAMPLE_NAME} - APPEND PROPERTY COMPILE_DEFINITIONS - ARABICA_NOT_USE_PRAGMA_LINKER_OPTIONS - ) - target_link_libraries(${EXAMPLE_NAME} - arabica - ) - - set_target_properties(${EXAMPLE_NAME} PROPERTIES FOLDER "3rdparty/arabica_examples") - - # - # Example SAX simple handler: - set(EXAMPLE_NAME simplehandler) - set(SIMPLE_HANDLER_SOURCES - examples/SAX/SimpleHandler.cpp - examples/SAX/SimpleHandler.hpp - examples/SAX/wrapper.cpp - ) - add_executable(${EXAMPLE_NAME} ${SIMPLE_HANDLER_SOURCES}) - set_property(TARGET ${EXAMPLE_NAME} - APPEND PROPERTY COMPILE_DEFINITIONS - ARABICA_NOT_USE_PRAGMA_LINKER_OPTIONS - ) - target_link_libraries(${EXAMPLE_NAME} - arabica - ) - set_target_properties(${EXAMPLE_NAME} PROPERTIES FOLDER "3rdparty/arabica_examples") - - # - # Example SAX taggle: - set(EXAMPLE_NAME taggle) - add_executable(${EXAMPLE_NAME} examples/Taggle/taggle.cpp) - set_property(TARGET ${EXAMPLE_NAME} - APPEND PROPERTY COMPILE_DEFINITIONS - ARABICA_NOT_USE_PRAGMA_LINKER_OPTIONS - ) - target_link_libraries(${EXAMPLE_NAME} - arabica - ) - set_target_properties(${EXAMPLE_NAME} PROPERTIES FOLDER "3rdparty/arabica_examples") - - # - # Example SAX writer: - set(EXAMPLE_NAME writer) - add_executable(${EXAMPLE_NAME} examples/SAX/writer.cpp) - set_property(TARGET ${EXAMPLE_NAME} - APPEND PROPERTY COMPILE_DEFINITIONS - ARABICA_NOT_USE_PRAGMA_LINKER_OPTIONS - ) - target_link_libraries(${EXAMPLE_NAME} - arabica - ) - set_target_properties(${EXAMPLE_NAME} PROPERTIES FOLDER "3rdparty/arabica_examples") - - # - # Example SAX xmlbase: - set(EXAMPLE_NAME xmlbase) - add_executable(${EXAMPLE_NAME} examples/SAX/xmlbase.cpp) - set_property(TARGET ${EXAMPLE_NAME} - APPEND PROPERTY COMPILE_DEFINITIONS - ARABICA_NOT_USE_PRAGMA_LINKER_OPTIONS - ) - target_link_libraries(${EXAMPLE_NAME} - arabica - ) - set_target_properties(${EXAMPLE_NAME} PROPERTIES FOLDER "3rdparty/arabica_examples") - - # - # Example SAX transcode: - set(EXAMPLE_NAME transcode) - add_executable(${EXAMPLE_NAME} examples/Utils/transcode.cpp) - set_property(TARGET ${EXAMPLE_NAME} - APPEND PROPERTY COMPILE_DEFINITIONS - ARABICA_NOT_USE_PRAGMA_LINKER_OPTIONS - ) - target_link_libraries(${EXAMPLE_NAME} - arabica - ) - set_target_properties(${EXAMPLE_NAME} PROPERTIES FOLDER "3rdparty/arabica_examples") - - # - # Example SAX xgrep: - set(EXAMPLE_NAME xgrep) - add_executable(${EXAMPLE_NAME} examples/XPath/xgrep.cpp) - set_property(TARGET ${EXAMPLE_NAME} - APPEND PROPERTY COMPILE_DEFINITIONS - ARABICA_NOT_USE_PRAGMA_LINKER_OPTIONS - ) - target_link_libraries(${EXAMPLE_NAME} - arabica - ) - set_target_properties(${EXAMPLE_NAME} PROPERTIES FOLDER "3rdparty/arabica_examples") - - # - # Example XSLT xgrep: - set(EXAMPLE_NAME mangle) - add_executable(${EXAMPLE_NAME} examples/XSLT/mangle.cpp) - - # - # win32 disable incremental linking - if(WIN32) - set_property(TARGET ${EXAMPLE_NAME} - APPEND PROPERTY COMPILE_FLAGS - "/bigobj" - ) - endif() - - set_property(TARGET ${EXAMPLE_NAME} - APPEND PROPERTY COMPILE_DEFINITIONS - ARABICA_NOT_USE_PRAGMA_LINKER_OPTIONS - ) - target_link_libraries(${EXAMPLE_NAME} - arabica - ) - set_target_properties(${EXAMPLE_NAME} PROPERTIES FOLDER "3rdparty/arabica_examples") - -endif() - - diff --git a/CMake.README b/cmake/CMake.README similarity index 100% rename from CMake.README rename to cmake/CMake.README diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt new file mode 100644 index 00000000..b8d52eae --- /dev/null +++ b/cmake/CMakeLists.txt @@ -0,0 +1,591 @@ +# +# CMakeLists.txt file for arabica xml +# author: Gunther Laure +# + +cmake_minimum_required (VERSION 2.8) + +project(arabica) + +set(LIBNAME arabica) + +# +# Enable/Disable example build +# +option(BUILD_ARABICA_EXAMPLES "Build all arabica examples" ON) + + +# +# Enable target folders in Visual Studio and other IDEs +set_property(GLOBAL + PROPERTY USE_FOLDERS ON) + + +# +# Set the used xml backend +# options: USE_MSXML, USE_EXPAT, USE_LIBXML2, USE_XERCES +# default for windows: MSXML +# default for linux: EXPAT +if(NOT ARABICA_XML_BACKEND) + if(WIN32) + set(ARABICA_XML_BACKEND USE_MSXML) + endif() + if(LINUX) + set(ARABICA_XML_BACKEND USE_EXPAT) + endif() +endif() + +# turn off windows options +if(NOT WIN32) + set(NO_WINDOWS) +endif() + +# +# Find boost +if(NOT TARGET boost) + ## BOOST_ROOT has to be set correctly + if(NOT DEFINED BOOST_ROOT) + set(BOOST_ROOT "../boost") # reasonable default: boost is in a parallel directory + endif() + find_package(Boost) +endif() + +# +# Find expat +if(ARABICA_XML_BACKEND STREQUAL USE_EXPAT) + if(NOT TARGET expat) + find_package(EXPAT REQUIRED) + set(ADDITIONAL_INC ${EXPAT_INCLUDE_DIRS}) + set(ADDITIONAL_LIB ${EXPAT_LIBRARY}) + else() + # set externally + set(ADDITIONAL_INC ${EXPAT_INCLUDE_DIRS}) + set(ADDITIONAL_LIB expat) + endif() +endif() + +# +# find libxml2: LIBXML2_INCLUDE_DIR LIBXML2_LIBRARIES +if(ARABICA_XML_BACKEND STREQUAL USE_LIBXML2) + find_package(LibXml2) + set(ADDITIONAL_INC ${LIBXML2_INCLUDE_DIR}) + set(ADDITIONAL_LIB ${LIBXML2_LIBRARIES}) +endif() + + +# +# platform check +# +# Check for 64 bit build +if(CMAKE_SIZEOF_VOID_P EQUAL 8) + set(BUILD_X64 TRUE) + set(BUILD_X86 FALSE) +else() + set(BUILD_X64 FALSE) + set(BUILD_X86 TRUE) +endif() + + +if(BUILD_ARABICA_EXAMPLES) + message(STATUS "Building ${LIBNAME} with ${ARABICA_XML_BACKEND} compile flag with examples") +else() + message(STATUS "Building ${LIBNAME} with ${ARABICA_XML_BACKEND} compile flag library only") +endif() + + +include_directories ( + SYSTEM + ${ADDITIONAL_INC} + ${Boost_INCLUDE_DIRS} + ) + +include_directories ( + ../include + ) + + +# +# configuration input file +set(ARABICA_CONFIG_FILE + ../vs7/ArabicaConfig.S +) +source_group("Config Input" FILES ${ARABICA_CONFIG_FILE}) + +set(GENERATED_HEADER_FILES + ../include/SAX/ArabicaConfig.hpp +) +source_group("Generated Header Files" FILES ${GENERATED_HEADER_FILES}) + +set(PUBLIC_HEADER_FILES + ../include/SAX/AttributeList.hpp + ../include/SAX/Attributes.hpp + ../include/SAX/ContentHandler.hpp + ../include/SAX/DocumentHandler.hpp + ../include/SAX/DTDHandler.hpp + ../include/SAX/EntityResolver.hpp + ../include/SAX/ErrorHandler.hpp + ../include/SAX/HandlerBase.hpp + ../include/SAX/InputSource.hpp + ../include/SAX/IStreamHandle.hpp + ../include/SAX/Locator.hpp + ../include/SAX/Parser.hpp + ../include/SAX/ParserConfig.hpp + ../include/SAX/SAXException.hpp + ../include/SAX/saxfwd.hpp + ../include/SAX/SAXNotRecognizedException.hpp + ../include/SAX/SAXNotSupportedException.hpp + ../include/SAX/SAXParseException.hpp + ../include/SAX/XMLFilter.hpp + ../include/SAX/XMLReader.hpp + ../include/SAX/ext/Attributes2.hpp + ../include/SAX/ext/DeclHandler.hpp + ../include/SAX/ext/DefaultHandler2.hpp + ../include/SAX/ext/LexicalHandler.hpp + ../include/SAX/ext/Locator2.hpp + ../include/SAX/ext/ProgressiveParser.hpp + ../include/SAX/filter/NamespaceTracker.hpp + ../include/SAX/filter/TextCoalescer.hpp + ../include/SAX/filter/TextOnly.hpp + ../include/SAX/filter/Writer.hpp + ../include/SAX/filter/XMLBaseTracker.hpp + ../include/SAX/helpers/AttributeDefaults.hpp + ../include/SAX/helpers/AttributeListImpl.hpp + ../include/SAX/helpers/AttributesImpl.hpp + ../include/SAX/helpers/AttributeTypes.hpp + ../include/SAX/helpers/CatchErrorHandler.hpp + ../include/SAX/helpers/DefaultHandler.hpp + ../include/SAX/helpers/FeatureNames.hpp + ../include/SAX/helpers/InputSourceResolver.hpp + ../include/SAX/helpers/LocatorImpl.hpp + ../include/SAX/helpers/NamespaceSupport.hpp + ../include/SAX/helpers/ParserAdaptor.hpp + ../include/SAX/helpers/PropertyNames.hpp + ../include/SAX/helpers/XMLBaseSupport.hpp + ../include/SAX/helpers/XMLFilterImpl.hpp + ../include/SAX/parsers/saxgarden.hpp + ../include/SAX/wrappers/saxexpat.hpp + ../include/SAX/wrappers/saxlibxml2.hpp + ../include/SAX/wrappers/saxmsxml2.hpp + ../include/SAX/wrappers/saxxerces.hpp + ../include/SAX/wrappers/XercesFeatureNames.hpp + ../include/SAX/wrappers/XercesPropertyNames.hpp + ../include/DOM/Attr.hpp + ../include/DOM/CDATASection.hpp + ../include/DOM/CharacterData.hpp + ../include/DOM/Comment.hpp + ../include/DOM/Document.hpp + ../include/DOM/DocumentFragment.hpp + ../include/DOM/DocumentType.hpp + ../include/DOM/DOMException.hpp + ../include/DOM/DOMImplementation.hpp + ../include/DOM/Element.hpp + ../include/DOM/Entity.hpp + ../include/DOM/EntityReference.hpp + ../include/DOM/NamedNodeMap.hpp + ../include/DOM/Node.hpp + ../include/DOM/NodeList.hpp + ../include/DOM/Notation.hpp + ../include/DOM/ProcessingInstruction.hpp + ../include/DOM/Proxy.hpp + ../include/DOM/Text.hpp + ../include/DOM/DualMode/DualMode.hpp + ../include/DOM/Events/DocumentEvent.hpp + ../include/DOM/Events/Event.hpp + ../include/DOM/Events/EventException.hpp + ../include/DOM/Events/EventListener.hpp + ../include/DOM/Events/EventTarget.hpp + ../include/DOM/Events/MutationEvent.hpp + ../include/DOM/SAX2DOM/DocumentTypeImpl.hpp + ../include/DOM/SAX2DOM/SAX2DOM.hpp + ../include/DOM/Simple/AttrImpl.hpp + ../include/DOM/Simple/AttrMap.hpp + ../include/DOM/Simple/AttrNSImpl.hpp + ../include/DOM/Simple/CDATASectionImpl.hpp + ../include/DOM/Simple/CharacterDataImpl.hpp + ../include/DOM/Simple/CommentImpl.hpp + ../include/DOM/Simple/DocumentFragmentImpl.hpp + ../include/DOM/Simple/DocumentImpl.hpp + ../include/DOM/Simple/DocumentTypeImpl.hpp + ../include/DOM/Simple/DOMImplementation.hpp + ../include/DOM/Simple/ElementByTagImpl.hpp + ../include/DOM/Simple/ElementImpl.hpp + ../include/DOM/Simple/ElementNSImpl.hpp + ../include/DOM/Simple/EntityImpl.hpp + ../include/DOM/Simple/EntityReferenceImpl.hpp + ../include/DOM/Simple/Helpers.hpp + ../include/DOM/Simple/NamedNodeMapImpl.hpp + ../include/DOM/Simple/NodeImpl.hpp + ../include/DOM/Simple/NotationImpl.hpp + ../include/DOM/Simple/ProcessingInstructionImpl.hpp + ../include/DOM/Simple/TextImpl.hpp + ../include/DOM/Traversal/DocumentTraversal.hpp + ../include/DOM/Traversal/DocumentTraversalImpl.hpp + ../include/DOM/Traversal/NodeFilter.hpp + ../include/DOM/Traversal/NodeIterator.hpp + ../include/DOM/Traversal/TraversalImpl.hpp + ../include/DOM/Traversal/TreeWalker.hpp + ../include/DOM/Traversal/TreeWalkerImpl.hpp + ../include/DOM/io/Stream.hpp + ../include/XPath/XPath.hpp + ../include/XPath/impl/xpath_arithmetic.hpp + ../include/XPath/impl/xpath_ast.hpp + ../include/XPath/impl/xpath_ast_ids.hpp + ../include/XPath/impl/xpath_axis_enumerator.hpp + ../include/XPath/impl/xpath_compile_context.hpp + ../include/XPath/impl/xpath_execution_context.hpp + ../include/XPath/impl/xpath_expression.hpp + ../include/XPath/impl/xpath_expression_impl.hpp + ../include/XPath/impl/xpath_function.hpp + ../include/XPath/impl/xpath_function_holder.hpp + ../include/XPath/impl/xpath_function_resolver.hpp + ../include/XPath/impl/xpath_grammar.hpp + ../include/XPath/impl/xpath_logical.hpp + ../include/XPath/impl/xpath_match.hpp + ../include/XPath/impl/xpath_match_rewrite.hpp + ../include/XPath/impl/xpath_namespace_context.hpp + ../include/XPath/impl/xpath_namespace_node.hpp + ../include/XPath/impl/xpath_node_test.hpp + ../include/XPath/impl/xpath_object.hpp + ../include/XPath/impl/xpath_parser.hpp + ../include/XPath/impl/xpath_relational.hpp + ../include/XPath/impl/xpath_resolver_holder.hpp + ../include/XPath/impl/xpath_step.hpp + ../include/XPath/impl/xpath_union.hpp + ../include/XPath/impl/xpath_value.hpp + ../include/XPath/impl/xpath_variable.hpp + ../include/XPath/impl/xpath_variable_resolver.hpp + ../include/Arabica/getparam.hpp + ../include/Arabica/StringAdaptor.hpp + ../include/Arabica/stringadaptortag.hpp + ../include/XML/escaper.hpp + ../include/XML/QName.hpp + ../include/XML/strings.hpp + ../include/XML/XMLCharacterClasses.hpp + ../include/io/convert_adaptor.hpp + ../include/io/convertstream.hpp + ../include/io/socket_stream.hpp + ../include/io/uri.hpp + ../include/convert/base64codecvt.hpp + ../include/convert/impl/codecvt_specialisations.hpp + ../include/convert/impl/iso88591_utf8.hpp + ../include/convert/iso88591utf8codecvt.hpp + ../include/convert/rot13codecvt.hpp + ../include/convert/impl/ucs2_utf16.hpp + ../include/convert/impl/ucs2_utf8.hpp + ../include/convert/ucs2utf8codecvt.hpp + ../include/convert/utf16beucs2codecvt.hpp + ../include/convert/utf16leucs2codecvt.hpp + ../include/convert/utf16utf8codecvt.hpp + ../include/convert/utf8iso88591codecvt.hpp + ../include/convert/utf8ucs2codecvt.hpp + ../include/text/normalize_whitespace.hpp + ../include/text/UnicodeCharacters.hpp + ../include/Taggle/impl/Element.hpp + ../include/Taggle/impl/ElementType.hpp + ../include/Taggle/impl/html/HTMLModels.hpp + ../include/Taggle/impl/html/HTMLScanner.hpp + ../include/Taggle/impl/html/HTMLSchema.hpp + ../include/Taggle/impl/Parser.hpp + ../include/Taggle/impl/ScanHandler.hpp + ../include/Taggle/impl/Scanner.hpp + ../include/Taggle/impl/Schema.hpp + ../include/Taggle/impl/SchemaImpl.hpp + ../include/Taggle/Taggle.hpp + ../include/XSLT/XSLT.hpp + ../include/XSLT/impl/xslt_apply_imports.hpp + ../include/XSLT/impl/xslt_apply_templates.hpp + ../include/XSLT/impl/xslt_attribute.hpp + ../include/XSLT/impl/xslt_call_template.hpp + ../include/XSLT/impl/xslt_choose.hpp + ../include/XSLT/impl/xslt_comment.hpp + ../include/XSLT/impl/xslt_compilation_context.hpp + ../include/XSLT/impl/xslt_compiled_stylesheet.hpp + ../include/XSLT/impl/xslt_copy.hpp + ../include/XSLT/impl/xslt_element.hpp + ../include/XSLT/impl/xslt_execution_context.hpp + ../include/XSLT/impl/xslt_for_each.hpp + ../include/XSLT/impl/xslt_functions.hpp + ../include/XSLT/impl/xslt_if.hpp + ../include/XSLT/impl/xslt_inline_element.hpp + ../include/XSLT/impl/xslt_item.hpp + ../include/XSLT/impl/xslt_key.hpp + ../include/XSLT/impl/xslt_message.hpp + ../include/XSLT/impl/xslt_namespace_stack.hpp + ../include/XSLT/impl/xslt_output.hpp + ../include/XSLT/impl/xslt_param.hpp + ../include/XSLT/impl/xslt_precedence.hpp + ../include/XSLT/impl/xslt_processing_instruction.hpp + ../include/XSLT/impl/xslt_qname.hpp + ../include/XSLT/impl/xslt_sink.hpp + ../include/XSLT/impl/xslt_sort.hpp + ../include/XSLT/impl/xslt_stylesheet.hpp + ../include/XSLT/impl/xslt_stylesheet_compiler.hpp + ../include/XSLT/impl/xslt_stylesheet_parser.hpp + ../include/XSLT/impl/xslt_template.hpp + ../include/XSLT/impl/xslt_text.hpp + ../include/XSLT/impl/xslt_top_level_param.hpp + ../include/XSLT/impl/xslt_value_of.hpp + ../include/XSLT/impl/xslt_variable.hpp + ../include/XSLT/impl/xslt_variable_impl.hpp + ../include/XSLT/impl/xslt_variable_stack.hpp + ../include/XSLT/impl/xslt_with_param.hpp + ../include/XSLT/impl/handler/xslt_apply_imports_handler.hpp + ../include/XSLT/impl/handler/xslt_apply_templates_handler.hpp + ../include/XSLT/impl/handler/xslt_attribute_handler.hpp + ../include/XSLT/impl/handler/xslt_call_template_handler.hpp + ../include/XSLT/impl/handler/xslt_choose_handler.hpp + ../include/XSLT/impl/handler/xslt_comment_handler.hpp + ../include/XSLT/impl/handler/xslt_constants.hpp + ../include/XSLT/impl/handler/xslt_copy_handler.hpp + ../include/XSLT/impl/handler/xslt_create_handler.hpp + ../include/XSLT/impl/handler/xslt_element_handler.hpp + ../include/XSLT/impl/handler/xslt_for_each_handler.hpp + ../include/XSLT/impl/handler/xslt_if_handler.hpp + ../include/XSLT/impl/handler/xslt_include_handler.hpp + ../include/XSLT/impl/handler/xslt_inline_element_handler.hpp + ../include/XSLT/impl/handler/xslt_item_container_handler.hpp + ../include/XSLT/impl/handler/xslt_key_handler.hpp + ../include/XSLT/impl/handler/xslt_message_handler.hpp + ../include/XSLT/impl/handler/xslt_namespace_alias_handler.hpp + ../include/XSLT/impl/handler/xslt_output_handler.hpp + ../include/XSLT/impl/handler/xslt_processing_instruction_handler.hpp + ../include/XSLT/impl/handler/xslt_sort_handler.hpp + ../include/XSLT/impl/handler/xslt_template_handler.hpp + ../include/XSLT/impl/handler/xslt_text_handler.hpp + ../include/XSLT/impl/handler/xslt_value_of_handler.hpp + ../include/XSLT/impl/handler/xslt_value_validation.hpp + ../include/XSLT/impl/handler/xslt_variable_handler.hpp + ../include/XSLT/impl/handler/xslt_with_param_handler.hpp + ) +source_group("Header Files" FILES ${PUBLIC_HEADER_FILES}) + +set(SOURCE_FILES + ../src/arabica.cpp + ../src/XML/XMLCharacterClasses.cpp + ../src/SAX/helpers/InputSourceResolver.cpp + ../src/io/uri.cpp + ../src/convert/base64codecvt.cpp + ../src/convert/impl/iso88591_utf8.cpp + ../src/convert/iso88591utf8codecvt.cpp + ../src/convert/rot13codecvt.cpp + ../src/convert/impl/ucs2_utf16.cpp + ../src/convert/impl/ucs2_utf8.cpp + ../src/convert/ucs2utf8codecvt.cpp + ../src/convert/utf16beucs2codecvt.cpp + ../src/convert/utf16leucs2codecvt.cpp + ../src/convert/utf16utf8codecvt.cpp + ../src/convert/utf8iso88591codecvt.cpp + ../src/convert/utf8ucs2codecvt.cpp + ../src/taggle/Schema.cpp +) +source_group("Source Files" FILES ${SOURCE_FILES}) + + +add_library (${LIBNAME} STATIC + ${ARABICA_CONFIG_FILE} + ${GENERATED_HEADER_FILES} + ${PUBLIC_HEADER_FILES} + ${SOURCE_FILES} +) + + +set_property(TARGET ${LIBNAME} + APPEND + PROPERTY COMPILE_DEFINITIONS + ARABICA_NOT_USE_PRAGMA_LINKER_OPTIONS + ) + +set_source_files_properties(${ARABICA_CONFIG_FILE} PROPERTIES HEADER_FILE_ONLY TRUE) + + +# +# Configure XML backend +if(MSVC) + # + # Preprocess configuration file for windows + add_custom_command(OUTPUT ../include/SAX/ArabicaConfig.hpp + COMMAND ${CMAKE_CXX_COMPILER} /TC /EP -D ${ARABICA_XML_BACKEND} ${CMAKE_CURRENT_LIST_DIR}/${ARABICA_CONFIG_FILE} > ../include/SAX/ArabicaConfig.hpp + ) +endif() +if(CMAKE_COMPILER_IS_GNUCC) + # + # Preprocess configuration file for Linux/GCC + add_custom_command(OUTPUT include/SAX/ArabicaConfig.hpp + COMMAND ${CMAKE_CXX_COMPILER} -E -D ${ARABICA_XML_BACKEND} ${CMAKE_CURRENT_LIST_DIR}/${ARABICA_CONFIG_FILE} > ../include/SAX/ArabicaConfig.hpp + ) +endif() + + + +# VS2010 bug for 64bit builds +if(MSVC) + if(BUILD_X64) + set_property(TARGET ${LIBNAME} + APPEND + PROPERTY STATIC_LIBRARY_FLAGS + /MACHINE:X64 + ) + endif() +endif() + + +if(MSVC) + # link socket library in windows + target_link_libraries(${LIBNAME} + ws2_32.lib + ) +endif() + +# link chosen backend +target_link_libraries(${LIBNAME} + ${ADDITIONAL_LIB} +) + + +# +# Add build dependency to boost if boost is part of the same project +if(TARGET boost) + add_dependencies(${LIBNAME} boost) +endif() + +set_target_properties(${LIBNAME} PROPERTIES FOLDER "3rdparty/arabica") + + +if(BUILD_ARABICA_EXAMPLES) + + # + # Example Dom writer: + set(EXAMPLE_NAME dom_writer) + add_executable(${EXAMPLE_NAME} ../examples/DOM/DOMWriter.cpp) + set_property(TARGET ${EXAMPLE_NAME} + APPEND PROPERTY COMPILE_DEFINITIONS + ARABICA_NOT_USE_PRAGMA_LINKER_OPTIONS + ) + target_link_libraries(${EXAMPLE_NAME} + arabica + ) + set_target_properties(${EXAMPLE_NAME} PROPERTIES FOLDER "3rdparty/arabica_examples") + + # + # Example SAX pyx: + set(EXAMPLE_NAME pyx) + add_executable(${EXAMPLE_NAME} ../examples/SAX/pyx.cpp) + set_property(TARGET ${EXAMPLE_NAME} + APPEND PROPERTY COMPILE_DEFINITIONS + ARABICA_NOT_USE_PRAGMA_LINKER_OPTIONS + ) + target_link_libraries(${EXAMPLE_NAME} + arabica + ) + + set_target_properties(${EXAMPLE_NAME} PROPERTIES FOLDER "3rdparty/arabica_examples") + + # + # Example SAX simple handler: + set(EXAMPLE_NAME simplehandler) + set(SIMPLE_HANDLER_SOURCES + ../examples/SAX/SimpleHandler.cpp + ../examples/SAX/SimpleHandler.hpp + ../examples/SAX/wrapper.cpp + ) + add_executable(${EXAMPLE_NAME} ${SIMPLE_HANDLER_SOURCES}) + set_property(TARGET ${EXAMPLE_NAME} + APPEND PROPERTY COMPILE_DEFINITIONS + ARABICA_NOT_USE_PRAGMA_LINKER_OPTIONS + ) + target_link_libraries(${EXAMPLE_NAME} + arabica + ) + set_target_properties(${EXAMPLE_NAME} PROPERTIES FOLDER "3rdparty/arabica_examples") + + # + # Example SAX taggle: + set(EXAMPLE_NAME taggle) + add_executable(${EXAMPLE_NAME} ../examples/Taggle/taggle.cpp) + set_property(TARGET ${EXAMPLE_NAME} + APPEND PROPERTY COMPILE_DEFINITIONS + ARABICA_NOT_USE_PRAGMA_LINKER_OPTIONS + ) + target_link_libraries(${EXAMPLE_NAME} + arabica + ) + set_target_properties(${EXAMPLE_NAME} PROPERTIES FOLDER "3rdparty/arabica_examples") + + # + # Example SAX writer: + set(EXAMPLE_NAME writer) + add_executable(${EXAMPLE_NAME} ../examples/SAX/writer.cpp) + set_property(TARGET ${EXAMPLE_NAME} + APPEND PROPERTY COMPILE_DEFINITIONS + ARABICA_NOT_USE_PRAGMA_LINKER_OPTIONS + ) + target_link_libraries(${EXAMPLE_NAME} + arabica + ) + set_target_properties(${EXAMPLE_NAME} PROPERTIES FOLDER "3rdparty/arabica_examples") + + # + # Example SAX xmlbase: + set(EXAMPLE_NAME xmlbase) + add_executable(${EXAMPLE_NAME} ../examples/SAX/xmlbase.cpp) + set_property(TARGET ${EXAMPLE_NAME} + APPEND PROPERTY COMPILE_DEFINITIONS + ARABICA_NOT_USE_PRAGMA_LINKER_OPTIONS + ) + target_link_libraries(${EXAMPLE_NAME} + arabica + ) + set_target_properties(${EXAMPLE_NAME} PROPERTIES FOLDER "3rdparty/arabica_examples") + + # + # Example SAX transcode: + set(EXAMPLE_NAME transcode) + add_executable(${EXAMPLE_NAME} ../examples/Utils/transcode.cpp) + set_property(TARGET ${EXAMPLE_NAME} + APPEND PROPERTY COMPILE_DEFINITIONS + ARABICA_NOT_USE_PRAGMA_LINKER_OPTIONS + ) + target_link_libraries(${EXAMPLE_NAME} + arabica + ) + set_target_properties(${EXAMPLE_NAME} PROPERTIES FOLDER "3rdparty/arabica_examples") + + # + # Example SAX xgrep: + set(EXAMPLE_NAME xgrep) + add_executable(${EXAMPLE_NAME} ../examples/XPath/xgrep.cpp) + set_property(TARGET ${EXAMPLE_NAME} + APPEND PROPERTY COMPILE_DEFINITIONS + ARABICA_NOT_USE_PRAGMA_LINKER_OPTIONS + ) + target_link_libraries(${EXAMPLE_NAME} + arabica + ) + set_target_properties(${EXAMPLE_NAME} PROPERTIES FOLDER "3rdparty/arabica_examples") + + # + # Example XSLT xgrep: + set(EXAMPLE_NAME mangle) + add_executable(${EXAMPLE_NAME} ../examples/XSLT/mangle.cpp) + + # + # win32 disable incremental linking + if(WIN32) + set_property(TARGET ${EXAMPLE_NAME} + APPEND PROPERTY COMPILE_FLAGS + "/bigobj" + ) + endif() + + set_property(TARGET ${EXAMPLE_NAME} + APPEND PROPERTY COMPILE_DEFINITIONS + ARABICA_NOT_USE_PRAGMA_LINKER_OPTIONS + ) + target_link_libraries(${EXAMPLE_NAME} + arabica + ) + set_target_properties(${EXAMPLE_NAME} PROPERTIES FOLDER "3rdparty/arabica_examples") + +endif() + + diff --git a/vs7/ArabicaConfig.S b/vs7/ArabicaConfig.S index 6448074a..e4e5b9c6 100644 --- a/vs7/ArabicaConfig.S +++ b/vs7/ArabicaConfig.S @@ -31,8 +31,10 @@ define ARABICA_NO_CODECVT_SPECIALISATIONS define HAVE_BOOST #endif +#ifndef NO_WINDOWS define ARABICA_USE_WINSOCK define ARABICA_WINDOWS +#endif #if defined(_DEBUG) || (__DEBUG__) define ARABICA_DEBUG