Skip to content

Commit bce19b5

Browse files
committed
Added dependencies to source rpm
1 parent 86ad76e commit bce19b5

File tree

2 files changed

+65
-2
lines changed

2 files changed

+65
-2
lines changed

CMakeLists.txt

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -379,7 +379,15 @@ CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/mariadb-odbc-driver.def.in
379379

380380
IF(MARIADB_LINK_DYNAMIC)# OR USE_SYSTEM_INSTALLED_LIB)
381381
IF(USE_SYSTEM_INSTALLED_LIB)
382-
SET(MARIADB_CLIENT_TARGET_NAME mariadb)
382+
FIND_PACKAGE(mariadb-connector-c)
383+
IF(MARIADB-CONNECTOR-C_FOUND)
384+
MESSAGE(STATUS "Found mariadb-connector-c package")
385+
INCLUDE_DIRECTORIES(${MARIADB-CONNECTO-C_INCLUDE_DIR})
386+
SET(MARIADB_CLIENT_TARGET_NAME ${MARIADB-CONNECTO-C_LIBRARIES})
387+
ELSE()
388+
INCLUDE_DIRECTORIES(/usr/include/mariadb /usr/include/mysql)
389+
SET(MARIADB_CLIENT_TARGET_NAME mariadb)
390+
ENDIF()
383391
ELSE()
384392
SET(MARIADB_CLIENT_TARGET_NAME libmariadb)
385393
ENDIF()
@@ -503,18 +511,26 @@ ELSE()
503511
IF(CMAKE_VERSION VERSION_GREATER "3.9.99")
504512

505513
SET(CPACK_SOURCE_GENERATOR "RPM")
514+
SET(CPACK_RPM_BUILDREQUIRES "cmake;unixODBC-devel;mariadb-connector-c")
506515
SETA(CPACK_RPM_SOURCE_PKG_BUILD_PARAMS "-DRPM=${RPM}")
507516

508517
MACRO(ADDIF var)
509518
IF(DEFINED ${var})
510-
SETA(CPACK_RPM_SOURCE_PKG_BUILD_PARAMS "-D${var}=${${var}}")
519+
SETA(CPACK_RPM_SOURCE_PKG_BUILD_PARAMS "-D${var}=${dummy}")
511520
ENDIF()
512521
ENDMACRO()
513522

514523
ADDIF(CMAKE_BUILD_TYPE)
515524
ADDIF(BUILD_CONFIG)
525+
ADDIF(MARIADB_LINK_DYNAMIC)
526+
#ADDIF(CMAKE_C_FLAGS_RELWITHDEBINFO)
527+
#ADDIF(DCMAKE_CXX_FLAGS_RELWITHDEBINFO)
516528
#ADDIF(WITH_SSL)
517529

530+
INCLUDE(build_depends)
531+
MESSAGE(STATUS "Build dependencies of the source RPM are: ${CPACK_RPM_BUILDREQUIRES}")
532+
MESSAGE(STATUS "Cmake params for build from source RPM: ${CPACK_RPM_SOURCE_PKG_BUILD_PARAMS}")
533+
518534
ENDIF()
519535
ELSE()
520536
SET(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_BINARY_DIR}/packaging/linux/postinstall")

cmake/build_depends.cmake

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
IF(RPM)
2+
MACRO(FIND_DEP V)
3+
SET(out ${V}_DEP)
4+
IF (NOT DEFINED ${out})
5+
IF(EXISTS ${${V}} AND NOT IS_DIRECTORY ${${V}})
6+
EXECUTE_PROCESS(COMMAND ${ARGN} RESULT_VARIABLE res OUTPUT_VARIABLE O OUTPUT_STRIP_TRAILING_WHITESPACE)
7+
ELSE()
8+
SET(res 1)
9+
ENDIF()
10+
IF (res)
11+
SET(O)
12+
ELSE()
13+
MESSAGE(STATUS "Need ${O} for ${${V}}")
14+
ENDIF()
15+
SET(${out} ${O} CACHE INTERNAL "Package that contains ${${V}}" FORCE)
16+
ENDIF()
17+
ENDMACRO()
18+
19+
# FindBoost.cmake doesn't leave any trace, do it here
20+
IF (Boost_INCLUDE_DIR)
21+
FIND_FILE(Boost_config_hpp boost/config.hpp PATHS ${Boost_INCLUDE_DIR})
22+
ENDIF()
23+
24+
GET_CMAKE_PROPERTY(ALL_VARS CACHE_VARIABLES)
25+
FOREACH (V ${ALL_VARS})
26+
GET_PROPERTY(H CACHE ${V} PROPERTY HELPSTRING)
27+
IF (H MATCHES "^Have library [^/]" AND ${V})
28+
STRING(REGEX REPLACE "^Have library " "" L ${H})
29+
SET(V ${L}_LIBRARY)
30+
FIND_LIBRARY(${V} ${L})
31+
ENDIF()
32+
GET_PROPERTY(T CACHE ${V} PROPERTY TYPE)
33+
IF ((T STREQUAL FILEPATH OR V MATCHES "^CMAKE_COMMAND$") AND ${V} MATCHES "^/")
34+
IF (RPM)
35+
FIND_DEP(${V} rpm -q --qf "%{NAME}" -f ${${V}})
36+
ELSE() # must be DEB
37+
MESSAGE(FATAL_ERROR "Not implemented")
38+
ENDIF ()
39+
SET(BUILD_DEPS ${BUILD_DEPS} ${${V}_DEP})
40+
ENDIF()
41+
ENDFOREACH()
42+
IF (BUILD_DEPS)
43+
SET(BUILD_DEPS "${CPACK_RPM_BUILDREQUIRES}" "${BUILD_DEPS}")
44+
LIST(REMOVE_DUPLICATES BUILD_DEPS)
45+
STRING(REPLACE ";" " " CPACK_RPM_BUILDREQUIRES "${BUILD_DEPS}")
46+
ENDIF()
47+
ENDIF(RPM)

0 commit comments

Comments
 (0)