|
@@ -3,18 +3,40 @@ PROJECT( OpenDDL-Parser )
|
|
|
SET ( OPENDDL_PARSER_VERSION_MAJOR 0 )
|
|
|
SET ( OPENDDL_PARSER_VERSION_MINOR 1 )
|
|
|
SET ( OPENDDL_PARSER_VERSION_PATCH 0 )
|
|
|
-SET ( OPENDDL_PARSER_VERSION ${CPPCORE_VERSION_MAJOR}.${CPPCORE_VERSION_MINOR}.${CPPCORE_VERSION_PATCH} )
|
|
|
+SET ( OPENDDL_PARSER_VERSION ${OPENDDL_PARSER_VERSION_MAJOR}.${OPENDDL_PARSER_VERSION_MINOR}.${OPENDDL_PARSER_VERSION_PATCH} )
|
|
|
SET ( PROJECT_VERSION "${OPENDDL_PARSER_VERSION}" )
|
|
|
|
|
|
+option( DDL_USE_CPP11 "Set to ON to use C++11 features ( always on on windows )." ON )
|
|
|
+option( DDL_DEBUG_OUTPUT "Set to ON to use output debug texts" OFF )
|
|
|
+option( DDL_STATIC_LIBRARY "Set to ON to build static libary of OpenDDL Parser." ON )
|
|
|
+option( COVERALLS "Generate coveralls data" OFF )
|
|
|
+
|
|
|
+if ( DDL_USE_CPP11 )
|
|
|
+ if( CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX )
|
|
|
+ set( OPENDDL_CXXFLAGS -std=c++0x )
|
|
|
+ elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
|
|
+ set( OPENDDL_CXXFLAGS --std=c++11 )
|
|
|
+ endif()
|
|
|
+else( DDL_USE_CPP11 )
|
|
|
+ add_definitions( -DOPENDDL_NO_USE_CPP11 )
|
|
|
+endif( DDL_USE_CPP11)
|
|
|
+
|
|
|
if( CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX )
|
|
|
find_package(Threads)
|
|
|
else()
|
|
|
add_definitions( -D_CRT_SECURE_NO_WARNINGS )
|
|
|
endif()
|
|
|
|
|
|
+if ( DDL_STATIC_LIBRARY )
|
|
|
+ add_definitions( -DOPENDDL_STATIC_LIBARY )
|
|
|
+endif()
|
|
|
+
|
|
|
add_definitions( -DOPENDDLPARSER_BUILD )
|
|
|
-add_definitions( -DOPENDDL_NO_USE_CPP11 )
|
|
|
add_definitions( -D_VARIADIC_MAX=10 )
|
|
|
+add_definitions( -DGTEST_HAS_PTHREAD=0 )
|
|
|
+if ( DDL_DEBUG_OUTPUT )
|
|
|
+ add_definitions( -DDDL_DEBUG_HEADER_NAME)
|
|
|
+endif()
|
|
|
|
|
|
INCLUDE_DIRECTORIES(
|
|
|
./
|
|
@@ -24,9 +46,10 @@ INCLUDE_DIRECTORIES(
|
|
|
)
|
|
|
|
|
|
link_directories(
|
|
|
- ./
|
|
|
+ ${CMAKE_HOME_DIRECTORY}/lib
|
|
|
)
|
|
|
|
|
|
+set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/cmake )
|
|
|
SET( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_HOME_DIRECTORY}/lib )
|
|
|
SET( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_HOME_DIRECTORY}/lib )
|
|
|
SET( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_HOME_DIRECTORY}/bin )
|
|
@@ -40,18 +63,38 @@ if( WIN32 AND NOT CYGWIN )
|
|
|
endif()
|
|
|
elseif( CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX )
|
|
|
# Update if necessary
|
|
|
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-long-long -pedantic -std=c++0x")
|
|
|
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-long-long -pedantic ${OPENDDL_CXXFLAGS}")
|
|
|
elseif ( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" )
|
|
|
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-long-long -pedantic -std=c++11")
|
|
|
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-long-long -pedantic ${OPENDDL_CXXFLAGS} -Wwrite-strings")
|
|
|
+endif()
|
|
|
+
|
|
|
+if (COVERALLS)
|
|
|
+ include(Coveralls)
|
|
|
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0 -fprofile-arcs -ftest-coverage")
|
|
|
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -O0 -fprofile-arcs -ftest-coverage")
|
|
|
endif()
|
|
|
|
|
|
+# Include the doc component.
|
|
|
+FIND_PACKAGE( doxygen )
|
|
|
+IF ( DOXYGEN_FOUND )
|
|
|
+ CONFIGURE_FILE( doc/openddlparser_doc.in doc/doxygenfile @ONLY )
|
|
|
+ ADD_CUSTOM_TARGET( doc ALL ${DOXYGEN_EXECUTABLE} doc/doxygenfile
|
|
|
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
|
|
+ COMMENT "Generating API documentation with Doxygen" VERBATIM )
|
|
|
+ENDIF ( DOXYGEN_FOUND )
|
|
|
+
|
|
|
SET ( openddl_parser_src
|
|
|
+ code/OpenDDLCommon.cpp
|
|
|
+ code/OpenDDLExport.cpp
|
|
|
code/OpenDDLParser.cpp
|
|
|
+ code/OpenDDLStream.cpp
|
|
|
code/DDLNode.cpp
|
|
|
code/Value.cpp
|
|
|
+ include/openddlparser/OpenDDLCommon.h
|
|
|
+ include/openddlparser/OpenDDLExport.h
|
|
|
include/openddlparser/OpenDDLParser.h
|
|
|
include/openddlparser/OpenDDLParserUtils.h
|
|
|
- include/openddlparser/OpenDDLCommon.h
|
|
|
+ include/openddlparser/OpenDDLStream.h
|
|
|
include/openddlparser/DDLNode.h
|
|
|
include/openddlparser/Value.h
|
|
|
README.md
|
|
@@ -59,6 +102,69 @@ SET ( openddl_parser_src
|
|
|
|
|
|
SOURCE_GROUP( code FILES ${openddl_parser_src} )
|
|
|
|
|
|
-ADD_LIBRARY( openddl_parser SHARED
|
|
|
- ${openddl_parser_src}
|
|
|
+if ( DDL_STATIC_LIBRARY )
|
|
|
+ ADD_LIBRARY( openddl_parser STATIC
|
|
|
+ ${openddl_parser_src}
|
|
|
+ )
|
|
|
+else()
|
|
|
+ ADD_LIBRARY( openddl_parser SHARED
|
|
|
+ ${openddl_parser_src}
|
|
|
+ )
|
|
|
+endif()
|
|
|
+
|
|
|
+SET ( GTEST_PATH contrib/gtest-1.7.0 )
|
|
|
+
|
|
|
+SET ( gtest_src
|
|
|
+ ${GTEST_PATH}/src/gtest-death-test.cc
|
|
|
+ ${GTEST_PATH}/src/gtest-filepath.cc
|
|
|
+ ${GTEST_PATH}/src/gtest-internal-inl.h
|
|
|
+ ${GTEST_PATH}/src/gtest-port.cc
|
|
|
+ ${GTEST_PATH}/src/gtest-printers.cc
|
|
|
+ ${GTEST_PATH}/src/gtest-test-part.cc
|
|
|
+ ${GTEST_PATH}/src/gtest-typed-test.cc
|
|
|
+ ${GTEST_PATH}/src/gtest.cc
|
|
|
+ ${GTEST_PATH}/src/gtest_main.cc
|
|
|
+)
|
|
|
+
|
|
|
+SET( openddl_parser_unittest_src
|
|
|
+ test/UnitTestCommon.h
|
|
|
+ test/DDLNodeTest.cpp
|
|
|
+ test/OpenDDLCommonTest.cpp
|
|
|
+ test/OpenDDLExportTest.cpp
|
|
|
+ test/OpenDDLParserTest.cpp
|
|
|
+ test/OpenDDLParserUtilsTest.cpp
|
|
|
+ test/OpenDDLStreamTest.cpp
|
|
|
+ test/OpenDDLIntegrationTest.cpp
|
|
|
+ test/ValueTest.cpp
|
|
|
+ test/OpenDDLDefectsTest.cpp
|
|
|
+)
|
|
|
+
|
|
|
+SOURCE_GROUP( code FILES ${openddl_parser_unittest_src} )
|
|
|
+SOURCE_GROUP( gtest FILES ${gtest_src} )
|
|
|
+
|
|
|
+ADD_EXECUTABLE( openddl_parser_unittest
|
|
|
+ ${gtest_src}
|
|
|
+ ${openddl_parser_unittest_src}
|
|
|
+)
|
|
|
+
|
|
|
+target_link_libraries( openddl_parser_unittest openddl_parser ${CMAKE_THREAD_LIBS_INIT} )
|
|
|
+
|
|
|
+SET( openddl_parser_demo_src
|
|
|
+ demo/main.cpp
|
|
|
)
|
|
|
+
|
|
|
+if (COVERALLS)
|
|
|
+ set(COVERAGE_SRCS ${gtest_src} ${openddl_parser_unittest_src} )
|
|
|
+
|
|
|
+ # Create the coveralls target.
|
|
|
+ coveralls_setup(
|
|
|
+ "${COVERAGE_SRCS}" # The source files.
|
|
|
+ ON # If we should upload.
|
|
|
+ "${PROJECT_SOURCE_DIR}/cmake/") # (Optional) Alternate project cmake module path.
|
|
|
+endif()
|
|
|
+
|
|
|
+ADD_EXECUTABLE( openddl_parser_demo
|
|
|
+ ${openddl_parser_demo_src}
|
|
|
+)
|
|
|
+
|
|
|
+target_link_libraries( openddl_parser_demo openddl_parser )
|