CMake. Soporte para MySQL/MariaDB y PostgreSQL en C.

Para añadir soporte para MySQL/MariaDB o PostgreSQL en C utilizando CMake podemos partir del siguiente CMakeLists.txt
cmake_minimum_required(VERSION 3.5)
project(CPasos C)


set(CMAKE_C_FLAGS_DEBUG "-D_ZZSoft_DEBUG_ -Wall")

include(FindPkgConfig)
pkg_check_modules(LIBMYSQLCLIENT REQUIRED mysqlclient)


foreach(FLAG ${LIBMYSQLCLIENT_CFLAGS_OTHER})
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${FLAG}")
endforeach()

pkg_check_modules(LIBPOSTGRESQL REQUIRED libpq)

set (HEADER_FILES variables.h)
set (SOURCES main.c ${HEADER_FILES})
set (THREADS_PREFER_PTHREAD_FLAG ON)

find_package(Threads REQUIRED)

link_directories(${LIBMYSQLCLIENT_LIBRARY_DIRS} ${LIBPOSTGRESQL})

add_executable(${PROJECT_NAME} ${SOURCES})
target_include_directories(${PROJECT_NAME} PRIVATE ${LIBMYSQLCLIENT_INCLUDE_DIRS} ${LIBPOSTGRESQL_INCLUDE_DIRS})
target_link_libraries (${PROJECT_NAME} PRIVATE ${CMAKE_THREAD_LIBS_INIT} ${LIBMYSQLCLIENT_LIBRARIES} ${LIBPOSTGRESQL_LIBRARIES})
Normalmente para añadir el soporte para alguna librería utilizando cmake se utiliza la función find_package que busca dentro de los directorios configurados ficheros con extensión cmake. Las pruebas las hice sobre Ubuntu, y en esta distribución, para el soporte PostgreSQL no me funcionó esta función. Para el soporte MySQL/MariaDB partí de https://mysqlserverteam.com/the-client-library-part-4-how-to-write-a-simple-mysql-client-in-c-using-cmake-and-pkg-config/

No hay comentarios:

Publicar un comentario