]>
Commit | Line | Data |
---|---|---|
1e59de90 TL |
1 | diff --git a/cmake/install_macros.cmake b/cmake/install_macros.cmake |
2 | index c3a05ec..0d44ef2 100644 | |
3 | --- a/cmake/install_macros.cmake | |
4 | +++ b/cmake/install_macros.cmake | |
5 | @@ -100,7 +100,7 @@ ENDFUNCTION() | |
6 | ||
7 | FUNCTION(MYSQL_INSTALL_TARGETS) | |
8 | MYSQL_PARSE_ARGUMENTS(ARG | |
9 | - "DESTINATION;COMPONENT" | |
10 | + "DESTINATION;COMPONENT;EXPORT" | |
11 | "" | |
12 | ${ARGN} | |
13 | ) | |
14 | @@ -115,7 +115,20 @@ FUNCTION(MYSQL_INSTALL_TARGETS) | |
15 | IF(ARG_COMPONENT) | |
16 | SET(COMP COMPONENT ${ARG_COMPONENT}) | |
17 | ENDIF() | |
18 | - INSTALL(TARGETS ${TARGETS} DESTINATION ${ARG_DESTINATION} ${COMP}) | |
19 | + IF (ARG_EXPORT) | |
20 | + FILE(WRITE "${CMAKE_CURRENT_BINARY_DIR}/${ARG_EXPORT}-config.cmake" | |
21 | +"include(CMakeFindDependencyMacro) | |
22 | +find_dependency(ZLIB) | |
23 | +find_dependency(OpenSSL) | |
24 | +include(\"\${CMAKE_CURRENT_LIST_DIR}/${ARG_EXPORT}-targets.cmake\") | |
25 | +") | |
26 | + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${ARG_EXPORT}-config.cmake DESTINATION share/${ARG_EXPORT}) | |
27 | + set(EXPORT_ARGS EXPORT ${ARG_EXPORT}-targets) | |
28 | + ENDIF() | |
29 | + INSTALL(TARGETS ${TARGETS} ${EXPORT_ARGS} RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ${COMP}) | |
30 | + IF (ARG_EXPORT) | |
31 | + INSTALL(${EXPORT_ARGS} DESTINATION share/${ARG_EXPORT}) | |
32 | + ENDIF() | |
33 | SET(INSTALL_LOCATION ${ARG_DESTINATION} ) | |
34 | INSTALL_DEBUG_SYMBOLS("${TARGETS}") | |
35 | SET(INSTALL_LOCATION) | |
36 | diff --git a/cmake/libutils.cmake b/cmake/libutils.cmake | |
37 | index 5481fae..3fa58da 100644 | |
38 | --- a/cmake/libutils.cmake | |
39 | +++ b/cmake/libutils.cmake | |
40 | @@ -237,7 +237,7 @@ MACRO(MERGE_LIBRARIES_SHARED) | |
41 | IF(ARG_COMPONENT) | |
42 | SET(COMP COMPONENT ${ARG_COMPONENT}) | |
43 | ENDIF() | |
44 | - MYSQL_INSTALL_TARGETS(${TARGET} DESTINATION "${INSTALL_LIBDIR}" ${COMP}) | |
45 | + MYSQL_INSTALL_TARGETS(${TARGET} EXPORT unofficial-libmysql DESTINATION "${INSTALL_LIBDIR}" ${COMP}) | |
46 | ENDIF() | |
47 | ENDMACRO() | |
48 | ||
49 | @@ -372,7 +372,7 @@ MACRO(MERGE_CONVENIENCE_LIBRARIES) | |
50 | SET(COMP COMPONENT ${ARG_COMPONENT}) | |
51 | ENDIF() | |
52 | IF(INSTALL_STATIC_LIBRARIES) | |
53 | - MYSQL_INSTALL_TARGETS(${TARGET} DESTINATION "${INSTALL_LIBDIR}" ${COMP}) | |
54 | + MYSQL_INSTALL_TARGETS(${TARGET} EXPORT unofficial-libmysql DESTINATION "${INSTALL_LIBDIR}" ${COMP}) | |
55 | ENDIF() | |
56 | ENDIF() | |
57 | ENDMACRO() | |
58 | diff --git a/libmysql/CMakeLists.txt b/libmysql/CMakeLists.txt | |
59 | index 605288d..c5d0f5d 100644 | |
60 | --- a/libmysql/CMakeLists.txt | |
61 | +++ b/libmysql/CMakeLists.txt | |
62 | @@ -245,8 +245,16 @@ ENDIF() | |
63 | # LDAP authentication SASL client plugin | |
64 | ADD_SUBDIRECTORY(authentication_ldap) | |
65 | ||
66 | +IF (BUILD_SHARED_LIBS) | |
67 | + set(INSTALL_SHARED ) | |
68 | + set(INSTALL_STATIC SKIP_INSTALL) | |
69 | +ELSE() | |
70 | + set(INSTALL_SHARED SKIP_INSTALL) | |
71 | + set(INSTALL_STATIC ) | |
72 | +ENDIF() | |
73 | + | |
74 | # Merge several convenience libraries into one big mysqlclient | |
75 | -MERGE_CONVENIENCE_LIBRARIES(mysqlclient ${LIBS_TO_MERGE} COMPONENT Development) | |
76 | +MERGE_CONVENIENCE_LIBRARIES(mysqlclient ${LIBS_TO_MERGE} ${INSTALL_STATIC} COMPONENT Development) | |
77 | TARGET_LINK_LIBRARIES(mysqlclient PRIVATE ${LIBS_TO_LINK}) | |
78 | ||
79 | # Visual Studio users need debug static library for debug projects | |
80 | @@ -283,6 +291,7 @@ ENDIF() | |
81 | # Merge several convenience libraries into one big mysqlclient | |
82 | # and link them together into shared library. | |
83 | MERGE_LIBRARIES_SHARED(libmysql ${LIBS_TO_MERGE} | |
84 | + ${INSTALL_SHARED} | |
85 | EXPORTS | |
86 | ${CLIENT_API_FUNCTIONS} | |
87 | ${CLIENT_API_FUNCTIONS_UNDOCUMENTED} | |
88 | @@ -370,6 +379,7 @@ CONFIGURE_FILE(api_test.c.in ${CMAKE_CURRENT_BINARY_DIR}/api_test.c) | |
89 | # from @CLIENT_API_FUNCTIONS@ are declared by <mysql.h>. It will fail | |
90 | # to run if not all of these symbols are exported by the library. | |
91 | # | |
92 | +IF (ENABLE_TESTING) | |
93 | MYSQL_ADD_EXECUTABLE(libmysql_api_test | |
94 | ${CMAKE_CURRENT_BINARY_DIR}/api_test.c | |
95 | LINK_LIBRARIES libmysql ${LIBRT} | |
96 | @@ -398,3 +408,4 @@ ADD_CUSTOM_COMMAND(TARGET libmysql_api_test POST_BUILD | |
97 | COMMAND libmysql_api_test | |
98 | > ${CMAKE_CURRENT_BINARY_DIR}/libmysql_api_test.out | |
99 | ) | |
100 | +ENDIF() | |
101 | \ No newline at end of file | |
102 | diff --git a/scripts/CMakeLists.txt b/scripts/CMakeLists.txt | |
103 | index a5fa18e..0f2e15c 100644 | |
104 | --- a/scripts/CMakeLists.txt | |
105 | +++ b/scripts/CMakeLists.txt | |
106 | @@ -329,13 +329,13 @@ MACRO(EXTRACT_LINK_LIBRARIES target var) | |
107 | STRING(REGEX REPLACE "^[ ]+" "" ${var} "${${var}}") | |
108 | STRING(REGEX REPLACE "[ ]+$" "" ${var} "${${var}}") | |
109 | ENDMACRO() | |
110 | - | |
111 | +IF (NOT BUILD_SHARED_LIBS) | |
112 | EXTRACT_LINK_LIBRARIES(mysqlclient CLIENT_LIBS) | |
113 | - | |
114 | -IF(MSVC) | |
115 | +ENDIF() | |
116 | +IF(MSVC AND NOT BUILD_SHARED_LIBS) | |
117 | GET_TARGET_PROPERTY(LIBMYSQL_OS_SHLIB_VERSION mysqlclient VERSION) | |
118 | GET_TARGET_PROPERTY(LIBMYSQL_OS_OUTPUT_NAME mysqlclient OUTPUT_NAME) | |
119 | -ELSE() | |
120 | +ELSEIF(BUILD_SHARED_LIBS) | |
121 | GET_TARGET_PROPERTY(LIBMYSQL_OS_SHLIB_VERSION libmysql VERSION) | |
122 | GET_TARGET_PROPERTY(LIBMYSQL_OS_OUTPUT_NAME libmysql OUTPUT_NAME) | |
123 | ENDIF() |