CMakeLists.txt 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. # Sources
  2. file(GLOB SRCS_G "src/*.cpp")
  3. POCO_SOURCES_AUTO(SRCS ${SRCS_G})
  4. if (NOT POCO_DATA_NO_SQL_PARSER)
  5. file(GLOB_RECURSE SRCS_PARSER "SQLParser/src/*.cpp")
  6. LIST(REMOVE_ITEM SRCS_PARSER "${CMAKE_CURRENT_SOURCE_DIR}/SQLParser/src/parser/conflict_test.cpp")
  7. POCO_SOURCES_AUTO(SRCS ${SRCS_PARSER})
  8. endif()
  9. # Headers
  10. file(GLOB_RECURSE HDRS_G "include/*.h")
  11. POCO_HEADERS_AUTO(SRCS ${HDRS_G})
  12. if(MSVC AND NOT(MSVC_VERSION LESS 1400))
  13. set_source_files_properties(src/StatementImpl.cpp
  14. PROPERTIES COMPILE_FLAGS "/bigobj")
  15. elseif(MINGW)
  16. set_source_files_properties(src/StatementImpl.cpp
  17. PROPERTIES COMPILE_FLAGS "-Wa,-mbig-obj")
  18. endif()
  19. # Version Resource
  20. if(MSVC AND BUILD_SHARED_LIBS)
  21. source_group("Resources" FILES ${PROJECT_SOURCE_DIR}/DLLVersion.rc)
  22. list(APPEND SRCS ${PROJECT_SOURCE_DIR}/DLLVersion.rc)
  23. endif()
  24. add_library(Data ${SRCS})
  25. add_library(Poco::Data ALIAS Data)
  26. set_target_properties(Data
  27. PROPERTIES
  28. VERSION ${SHARED_LIBRARY_VERSION} SOVERSION ${SHARED_LIBRARY_VERSION}
  29. OUTPUT_NAME PocoData
  30. DEFINE_SYMBOL Data_EXPORTS
  31. )
  32. if (NOT POCO_DATA_NO_SQL_PARSER)
  33. target_compile_definitions(Data PUBLIC -DSQLParser_EXPORTS)
  34. endif()
  35. target_link_libraries(Data PUBLIC Poco::Foundation)
  36. if(NOT POCO_DATA_NO_SQL_PARSER)
  37. target_include_directories(Data
  38. PUBLIC
  39. $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
  40. $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>
  41. $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
  42. PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/SQLParser/src
  43. PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/SQLParser
  44. )
  45. else()
  46. target_include_directories(Data
  47. PUBLIC
  48. $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
  49. $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>
  50. $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
  51. )
  52. endif()
  53. POCO_INSTALL(Data)
  54. POCO_GENERATE_PACKAGE(Data)
  55. if(ENABLE_TESTS)
  56. add_subdirectory(DataTest)
  57. add_subdirectory(testsuite)
  58. endif()
  59. if(ENABLE_DATA_SQLITE)
  60. # SQlite3 is built in any case
  61. message(STATUS "SQLite Support Enabled")
  62. add_subdirectory(SQLite)
  63. else(ENABLE_DATA_SQLITE)
  64. message(STATUS "SQLite Support Disabled")
  65. endif()
  66. if(MYSQL_FOUND AND ENABLE_DATA_MYSQL)
  67. message(STATUS "MySQL Support Enabled")
  68. add_subdirectory(MySQL)
  69. else()
  70. message(STATUS "MySQL Support Disabled")
  71. endif()
  72. if(POSTGRESQL_FOUND AND ENABLE_DATA_POSTGRESQL)
  73. message(STATUS "PostgreSQL Support Enabled")
  74. add_subdirectory(PostgreSQL)
  75. else()
  76. message(STATUS "PostgreSQL Support Disabled")
  77. endif()
  78. if(ODBC_FOUND AND ENABLE_DATA_ODBC)
  79. message(STATUS "ODBC Support Enabled")
  80. add_subdirectory(ODBC)
  81. else()
  82. message(STATUS "ODBC Support Disabled")
  83. endif()
  84. if(ENABLE_SAMPLES)
  85. add_subdirectory(samples)
  86. endif()