Skip to content

Commit 6d9c3e6

Browse files
committed
Fix Windows Runtime Library
1 parent 9f64d32 commit 6d9c3e6

File tree

5 files changed

+41
-22
lines changed

5 files changed

+41
-22
lines changed

CMakeLists.txt

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -89,12 +89,37 @@ IF(CMAKE_ENABLE_C++11)
8989
ENDIF(COMPILER_SUPPORTS_CXX11)
9090
ENDIF(CMAKE_ENABLE_C++11)
9191

92-
#-----------------
93-
# Changing CRT from dynamic to static (Windows Only)
94-
IF(WIN32)
95-
INCLUDE(${CMAKE_SOURCE_DIR}/changeCrt.cmake)
96-
CHANGE_CRT("/MT")
97-
ENDIF(WIN32)
92+
93+
#
94+
# Configure static runtime library on Windows if requested
95+
#
96+
97+
option(STATIC_MSVCRT "Use static MSVC runtime library" OFF)
98+
99+
if(WIN32)
100+
IF(STATIC_MSVCRT)
101+
102+
message("Using static runtime library")
103+
104+
foreach(LANG C CXX)
105+
set(CMAKE_${LANG}_FLAGS "${CMAKE_${LANG}_FLAGS} /MT")
106+
foreach(TYPE RELEASE RELWITHDEBINFO MINSIZEREL)
107+
set(CMAKE_${LANG}_FLAGS_${TYPE} "${CMAKE_${LANG}_FLAGS_${TYPE}} /MT")
108+
endforeach()
109+
set(CMAKE_${LANG}_FLAGS_DEBUG "${CMAKE_${LANG}_FLAGS_DEBUG} /MTd")
110+
endforeach(LANG)
111+
ELSE(STATIC_MSVCRT)
112+
foreach(LANG C CXX)
113+
set(CMAKE_${LANG}_FLAGS "${CMAKE_${LANG}_FLAGS} /MD")
114+
foreach(TYPE RELEASE RELWITHDEBINFO MINSIZEREL)
115+
set(CMAKE_${LANG}_FLAGS_${TYPE} "${CMAKE_${LANG}_FLAGS_${TYPE}} /MD")
116+
endforeach()
117+
set(CMAKE_${LANG}_FLAGS_DEBUG "${CMAKE_${LANG}_FLAGS_DEBUG} /MDd")
118+
endforeach(LANG)
119+
ENDIF(STATIC_MSVCRT)
120+
121+
endif()
122+
98123

99124
#-----------------
100125
# ICU

changeCrt.cmake

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ MACRO(CHANGE_CRT _switch2use)
4141
STRING(REGEX REPLACE "/M${switch2change}" "/M${switch2use}" ${flags} "${${flags}}")
4242
ENDIF(${flags} MATCHES "/M${switch2change}")
4343

44+
MESSAGE(STATUS, "CHANGE_CRT ${flags} ${${flags}}")
45+
4446
ENDFOREACH(flags)
4547
ENDIF(WIN32)
4648

driver/CMakeLists.txt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -299,17 +299,17 @@ IF(WIN32)
299299
# LINK_FLAGS_DEBUG "/NODEFAULTLIB:LIBCMTD /NODEFAULTLIB:LIBCMT"
300300
# LINK_FLAGS_RELWITHDEBINFO "/NODEFAULTLIB:LIBCMT"
301301
# LINK_FLAGS_RELEASE "/NODEFAULTLIB:LIBCMT")
302-
#
302+
303303
# SET_TARGET_PROPERTIES(mysqlcppconn-static PROPERTIES
304304
# STATIC_LIBRARY_FLAGS_DEBUG "/NODEFAULTLIB:LIBCMTD"
305305
# STATIC_LIBRARY_FLAGS_RELWITHDEBINFO "/NODEFAULTLIB:LIBCMT"
306306
# STATIC_LIBRARY_FLAGS_RELEASE "/NODEFAULTLIB:LIBCMT")
307307

308-
# Changing CRT from dynamic to static
309-
IF(MYSQLCLIENT_STATIC_BINDING)
310-
INCLUDE(${CMAKE_SOURCE_DIR}/changeCrt.cmake)
311-
CHANGE_CRT("/MT")
312-
ENDIF()
308+
# # Changing CRT from static to dynamic
309+
# IF(MYSQLCLIENT_STATIC_BINDING)
310+
# INCLUDE(${CMAKE_SOURCE_DIR}/changeCrt.cmake)
311+
# CHANGE_CRT("/MD")
312+
# ENDIF()
313313

314314
INSTALL(TARGETS mysqlcppconn mysqlcppconn-static
315315
RUNTIME DESTINATION lib

driver/mysql_art_resultset.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ namespace mysql
4646

4747
class MySQL_DebugLogger;
4848

49-
class MyVal
49+
class CPPCONN_PUBLIC_FUNC MyVal
5050
{
5151
union {
5252
sql::SQLString * str;

test/unit/classes/CMakeLists.txt

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -198,16 +198,8 @@ SET_TARGET_PROPERTIES(test_art_resultset PROPERTIES
198198
OUTPUT_NAME "art_resultset"
199199
LINK_FLAGS "${MYSQLCPPCONN_LINK_FLAGS_ENV} ${MYSQL_LINK_FLAGS}"
200200
COMPILE_FLAGS "${MYSQLCPPCONN_COMPILE_FLAGS_ENV}")
201+
TARGET_LINK_LIBRARIES(test_art_resultset ${MY_TARGET_LINK_LIBRARIES} ${MY_GCOV_LINK_LIBRARIES})
201202

202-
IF(WIN32)
203-
TARGET_LINK_LIBRARIES(test_art_resultset ${MY_TARGET_LINK_LIBRARIES_STATIC_CPPLIB} ${MY_GCOV_LINK_LIBRARIES})
204-
# SET_TARGET_PROPERTIES(test_art_resultset PROPERTIES
205-
# LINK_FLAGS_DEBUG "/NODEFAULTLIB:LIBCMTD /NODEFAULTLIB:LIBCMT"
206-
# LINK_FLAGS_RELWITHDEBINFO "/NODEFAULTLIB:LIBCMT"
207-
# LINK_FLAGS_RELEASE "/NODEFAULTLIB:LIBCMT")
208-
ELSE(WIN32)
209-
TARGET_LINK_LIBRARIES(test_art_resultset ${MY_TARGET_LINK_LIBRARIES} ${MY_GCOV_LINK_LIBRARIES})
210-
ENDIF(WIN32)
211203

212204
MESSAGE(STATUS "Configuring unit tests - art_resultset")
213205

0 commit comments

Comments
 (0)