diff extensions/app_diameap/CMakeLists.txt @ 1418:a51f71694121

fix build with MySQL >= 8.0 MySQL 8.0 deprecated my_bool in favour of C99's bool. Detect if my_bool is available, and if not, provide a replacement.
author Luke Mewburn <luke@mewburn.net>
date Tue, 18 Feb 2020 20:58:20 +1100
parents 242ee9fe34aa
children
line wrap: on
line diff
--- a/extensions/app_diameap/CMakeLists.txt	Tue Feb 18 19:12:16 2020 +1100
+++ b/extensions/app_diameap/CMakeLists.txt	Tue Feb 18 20:58:20 2020 +1100
@@ -1,11 +1,26 @@
 # The Diameter EAP Application extension
 PROJECT("Diameter EAP Application extension" C)
 
+INCLUDE (CheckCSourceCompiles)
+
 # Find MySQL 
 FIND_PACKAGE(MySQL REQUIRED)
 FIND_PACKAGE(Gcrypt REQUIRED)
 INCLUDE_DIRECTORIES(${MySQL_INCLUDE_DIR})
 
+# Check for my_bool, deprecated in MySQL 8.0
+SET(CHECK_MYSQL_MY_BOOL "
+#include <mysql.h>
+int main() {
+my_bool f;
+}")
+SET(CMAKE_REQUIRED_INCLUDES ${MySQL_INCLUDE_DIR})
+SET(CMAKE_REQUIRED_LIBRARIES ${MySQL_LIBRARY})
+CHECK_C_SOURCE_COMPILES("${CHECK_MYSQL_MY_BOOL}" HAVE_MYSQL_MY_BOOL)
+IF (HAVE_MYSQL_MY_BOOL)
+  ADD_DEFINITIONS(-DHAVE_MYSQL_MY_BOOL)
+ENDIF()
+
 # Parse plugins
 ADD_SUBDIRECTORY(plugins)
 
"Welcome to our mercurial repository"