aboutsummaryrefslogtreecommitdiff
path: root/Plugin.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'Plugin.cmake')
-rw-r--r--Plugin.cmake45
1 files changed, 45 insertions, 0 deletions
diff --git a/Plugin.cmake b/Plugin.cmake
new file mode 100644
index 0000000..febebda
--- /dev/null
+++ b/Plugin.cmake
@@ -0,0 +1,45 @@
+set(PLUGIN_NAME sqldb)
+
+# Dependencies
+find_package(PostgreSQL)
+find_package(Sqlite3)
+find_package(MySQL)
+
+# Check databases available
+if(NOT PostgreSQL_FOUND AND NOT SQLITE3_FOUND AND NOT MYSQLCONNECTORCPP_FOUND)
+ message(FATAL_ERROR "No database libraries could be found")
+endif()
+
+# Source files
+set(CPPFILES src/opcodes.cpp src/connection.cpp src/tools.cpp)
+set(INCLUDES ${CSOUND_INCLUDE_DIRS} "include")
+set(LIBS "")
+
+if(PostgreSQL_FOUND)
+ message(STATUS "Using PostgreSQL")
+ list(APPEND CPPFILES "src/postgresql.cpp")
+ list(APPEND INCLUDES ${PostgreSQL_INCLUDE_DIRS})
+ list(APPEND LIBS ${PostgreSQL_LIBRARIES})
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DBUILD_POSTGRES")
+endif()
+
+if(SQLITE3_FOUND)
+ message(STATUS "Using SQLite3")
+ list(APPEND CPPFILES "src/sqlite3.cpp")
+ list(APPEND INCLUDES ${SQLITE3_INCLUDE_DIRS})
+ list(APPEND LIBS ${SQLITE3_LIBRARIES})
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DBUILD_SQLITE")
+endif()
+
+if(MYSQLCONNECTORCPP_FOUND)
+ message(STATUS "Using MySQL")
+ list(APPEND CPPFILES "src/mysql.cpp")
+ list(APPEND INCLUDES ${MYSQLCONNECTORCPP_INCLUDE_DIRS})
+ list(APPEND LIBS ${MYSQLCONNECTORCPP_LIBRARIES})
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DBUILD_MYSQL")
+endif()
+
+
+make_plugin(${PLUGIN_NAME} "${CPPFILES}" ${LIBS})
+target_include_directories(${PLUGIN_NAME} PRIVATE ${INCLUDES})
+