Index: CMakeLists.txt =================================================================== --- CMakeLists.txt (revision 918069) +++ CMakeLists.txt (working copy) @@ -1,4 +1,4 @@ -project(soprano) +project(soprano) cmake_minimum_required(VERSION 2.6.2) @@ -9,10 +9,8 @@ set(CMAKE_SOPRANO_VERSION_RELEASE 60) set(CMAKE_SOPRANO_VERSION_STRING "${CMAKE_SOPRANO_VERSION_MAJOR}.${CMAKE_SOPRANO_VERSION_MINOR}.${CMAKE_SOPRANO_VERSION_RELEASE}") -enable_testing() +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules) -set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules) - if(WIN32) set(CMAKE_DEBUG_POSTFIX "d") endif(WIN32) @@ -20,37 +18,45 @@ ################## find packages ################################ set(QT_MIN_VERSION "4.4.0") -find_package(Qt4 REQUIRED) +find_package(Qt4 REQUIRED) # properly set up compile flags (QT_DEBUG/QT_NO_DEBUG, ...) include(${QT_USE_FILE}) -find_package(Redland) +option(ENABLE_Redland "Raptor RDF parser/serializer and Redland storage backend" OFF) +if(ENABLE_Redland) + find_package(Redland) +endif(ENABLE_Redland) -find_package(CLucene) -if(CLucene_FOUND) - if(CLUCENE_VERSION AND CLUCENE_VERSION STRGREATER "0.9.19" OR CLUCENE_VERSION STREQUAL "0.9.19") - set(CL_VERSION_19_OR_GREATER TRUE) - endif(CLUCENE_VERSION AND CLUCENE_VERSION STRGREATER "0.9.19" OR CLUCENE_VERSION STREQUAL "0.9.19") - set(SOPRANO_BUILD_INDEX_LIB 1 CACHE INTERNAL "Soprano Index is built" FORCE) -endif(CLucene_FOUND) +option(ENABLE_CLucene "CLucene-based full-text search index library" ON) +if(ENABLE_CLucene) + find_package(CLucene) + if(CLucene_FOUND) + if(CLUCENE_VERSION AND CLUCENE_VERSION STRGREATER "0.9.19" OR CLUCENE_VERSION STREQUAL "0.9.19") + set(CL_VERSION_19_OR_GREATER TRUE) + endif(CLUCENE_VERSION AND CLUCENE_VERSION STRGREATER "0.9.19" OR CLUCENE_VERSION STREQUAL "0.9.19") + set(SOPRANO_BUILD_INDEX_LIB 1 CACHE INTERNAL "Soprano Index is built" FORCE) + endif(CLucene_FOUND) +endif(ENABLE_CLucene) -find_package(JNI) -if(JAVA_INCLUDE_PATH AND JAVA_JVM_LIBRARY) - file(READ ${JAVA_INCLUDE_PATH}/jni.h jni_header_data) - string(REGEX MATCH "JNI_VERSION_1_4" JNI_1_4_FOUND "${jni_header_data}") - if(JNI_1_4_FOUND) - message(STATUS "Found Java JNI >= 1.4: ${JAVA_INCLUDE_PATH}, ${JAVA_JVM_LIBRARY}") - else(JNI_1_4_FOUND) - message( "Need JNI version 1.4 or higher for the Sesame2 backend.") - endif(JNI_1_4_FOUND) -else(JAVA_INCLUDE_PATH AND JAVA_JVM_LIBRARY) - message(STATUS "Could not find Java JNI") - if("$ENV{JAVA_HOME}" STREQUAL "") - message("Make sure JAVA_HOME is set") - endif("$ENV{JAVA_HOME}" STREQUAL "") -endif(JAVA_INCLUDE_PATH AND JAVA_JVM_LIBRARY) +option(ENABLE_Sesame2 "Sesame2 storage backend (java-based)" ON) +if(ENABLE_Sesame2) + find_package(JNI) + if(JAVA_INCLUDE_PATH AND JAVA_JVM_LIBRARY) + file(READ ${JAVA_INCLUDE_PATH}/jni.h jni_header_data) + string(REGEX MATCH "JNI_VERSION_1_4" JNI_1_4_FOUND "${jni_header_data}") + if(JNI_1_4_FOUND) + message(STATUS "Found Java JNI >= 1.4: ${JAVA_INCLUDE_PATH}, ${JAVA_JVM_LIBRARY}") + else(JNI_1_4_FOUND) + message( "Need JNI version 1.4 or higher for the Sesame2 backend.") + endif(JNI_1_4_FOUND) + else(JAVA_INCLUDE_PATH AND JAVA_JVM_LIBRARY) + message(STATUS "Could not find Java JNI") + if("$ENV{JAVA_HOME}" STREQUAL "") + message("Make sure JAVA_HOME is set") + endif("$ENV{JAVA_HOME}" STREQUAL "") + endif(JAVA_INCLUDE_PATH AND JAVA_JVM_LIBRARY) +endif(ENABLE_Sesame2) - ################## setup install directories ################################ set (LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32/64)" ) set (LIB_DESTINATION "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}" CACHE STRING "Library directory name") @@ -63,40 +69,47 @@ # By default cmake builds the targets with full RPATH to everything in the build directory, # but then removes the RPATH when installing. # These two options below make it set the RPATH of the installed targets to all -# RPATH directories outside the current CMAKE_BINARY_DIR and also the library +# RPATH directories outside the current CMAKE_BINARY_DIR and also the library # install directory. Alex set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) -set(CMAKE_INSTALL_RPATH ${LIB_DESTINATION} ) +set(CMAKE_INSTALL_RPATH ${LIB_DESTINATION}) if(APPLE) - set(CMAKE_INSTALL_NAME_DIR ${LIB_DESTINATION}) + set(CMAKE_INSTALL_NAME_DIR ${LIB_DESTINATION}) endif(APPLE) ################## some compiler settings ################################ if(CMAKE_COMPILER_IS_GNUCXX AND NOT WIN32 ) - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common") + set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common") endif(CMAKE_COMPILER_IS_GNUCXX AND NOT WIN32 ) if(MSVC) - add_definitions(-D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -Zc:wchar_t-) + add_definitions(-D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -Zc:wchar_t-) endif(MSVC) if(MINGW) - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -Wpointer-arith -Wformat-security -fno-check-new -fno-common") + set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -Wpointer-arith -Wformat-security -fno-check-new -fno-common") endif(MINGW) ################## add subdirectories ################################ if(CLucene_FOUND) - add_subdirectory(index) + add_subdirectory(index) endif(CLucene_FOUND) -add_subdirectory(soprano) + +add_subdirectory(soprano) add_subdirectory(backends) add_subdirectory(parsers) add_subdirectory(serializers) #add_subdirectory(queryparsers) add_subdirectory(server) add_subdirectory(tools) -add_subdirectory(test) + +option(ENABLE_tests "Parser/storage backend tests)" ON) +if(ENABLE_tests) + enable_testing() + add_subdirectory(test) +endif(ENABLE_tests) + add_subdirectory(rules) add_subdirectory(includes) @@ -109,24 +122,26 @@ ################## apidox ################################ -find_package(Doxygen) +option(ENABLE_docs "API documentation" ON) +if(ENABLE_docs) + find_package(Doxygen) -if(DOXYGEN_EXECUTABLE) - configure_file(${soprano_SOURCE_DIR}/Doxyfile.cmake ${soprano_BINARY_DIR}/Doxyfile) + if(DOXYGEN_EXECUTABLE) + configure_file(${soprano_SOURCE_DIR}/Doxyfile.cmake ${soprano_BINARY_DIR}/Doxyfile) - if(EXISTS ${QT_DOC_DIR}/html) - set(QTDOCS "${QT_DOC_DIR}/html") - else(EXISTS ${QT_DOC_DIR}/html) - set(QTDOCS "http://doc.trolltech.com/4.3/") - endif(EXISTS ${QT_DOC_DIR}/html) + if(EXISTS ${QT_DOC_DIR}/html) + set(QTDOCS "${QT_DOC_DIR}/html") + else(EXISTS ${QT_DOC_DIR}/html) + set(QTDOCS "http://doc.trolltech.com/4.3/") + endif(EXISTS ${QT_DOC_DIR}/html) - add_custom_target( - apidox - COMMAND ${DOXYGEN_EXECUTABLE} Doxyfile - COMMAND docs/html/installdox -l qt4.tag@${QTDOCS} docs/html/*.html) -endif(DOXYGEN_EXECUTABLE) + add_custom_target( + apidox + COMMAND ${DOXYGEN_EXECUTABLE} Doxyfile + COMMAND docs/html/installdox -l qt4.tag@${QTDOCS} docs/html/*.html) + endif(DOXYGEN_EXECUTABLE) +endif(ENABLE_docs) - ################## status messages ################################ message("---------------------------------------------------------------------------------------") message("-- Soprano Components that will be built:")