summaryrefslogtreecommitdiffstats
path: root/libmariadb/win/packaging/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'libmariadb/win/packaging/CMakeLists.txt')
-rw-r--r--libmariadb/win/packaging/CMakeLists.txt105
1 files changed, 105 insertions, 0 deletions
diff --git a/libmariadb/win/packaging/CMakeLists.txt b/libmariadb/win/packaging/CMakeLists.txt
new file mode 100644
index 00000000..df72db43
--- /dev/null
+++ b/libmariadb/win/packaging/CMakeLists.txt
@@ -0,0 +1,105 @@
+SET(CLIENT_LIB_DIR ${CC_BINARY_DIR}/libmariadb/${CMAKE_BUILD_TYPE})
+SET(CLIENT_BIN_DIR ${CC_BINARY_DIR}/client/${CMAKE_BUILD_TYPE})
+SET(CLIENT_DBG_DIR ${CC_BINARY_DIR}/libmariadb/Debug)
+SET(CLIENT_INC_DIR ${CC_SOURCE_DIR}/include)
+
+SET(PRODUCT_NAME "MariaDB Connector C")
+SET(PRODUCT_INSTALL_DIR "MariaDB")
+SET(PRODUCT_MANUFACTURER "MariaDB Corporation")
+SET(PRODUCT_VERSION "${CPACK_PACKAGE_VERSION}")
+
+IF (${CMAKE_SIZEOF_VOID_P} EQUAL 8)
+ SET(PRODUCT_NAME "${PRODUCT_NAME} 64-bit")
+ SET(PLATFORM "win64")
+ SET(IS_WIN64 "yes")
+ SET(WIXPLATFORM "x64")
+ SET(PRODUCT_UPGRADE_CODE "4E630B8C-4645-416D-A561-45D88E7BDCF1")
+ SET(FOLDER "ProgramFiles64Folder")
+ELSE()
+ SET(PLATFORM "win32")
+ SET(IS_WIN64 "no")
+ SET(WIXPLATFORM "x86")
+ SET(PRODUCT_UPGRADE_CODE "FCBC4419-07C8-4595-9803-DFD602A84F29")
+ SET(FOLDER "ProgramFilesFolder")
+ENDIF()
+
+#
+# process dynamic plugins
+#
+FOREACH(plugin ${PLUGINS_DYNAMIC})
+ SET(TARGET ${plugin})
+ # Get dependencies
+ SET(DYNAMIC_TARGETS ${DYNAMIC_TARGETS} ${TARGET})
+ SET(FILE ${CC_BINARY_DIR}/${CMAKE_BUILD_TYPE}/${TARGET}.dll)
+ SET(PDB ${CC_BINARY_DIR}/${CMAKE_BUILD_TYPE}/${TARGET}.pdb)
+ MESSAGE(STATUS "Location for ${TARGET}: ${FILE}")
+ # build file list
+ STRING(REPLACE "$(Configuration)" "RelWithDebInfo" FILE ${FILE})
+ SET(MARIADB_PLUGINS "${MARIADB_PLUGINS} <File Id=\"${TARGET}.dll\" Name=\"${TARGET}.dll\" DiskId=\"1\" Source=\"${FILE}\"/>\n")
+ SET(MARIADB_PLUGINS "${MARIADB_PLUGINS} <File Id=\"${TARGET}.pdb\" Name=\"${TARGET}.pdb\" DiskId=\"1\" Source=\"${PDB}\"/>\n")
+ENDFOREACH()
+
+FOREACH(src ${WIX_INCLUDES})
+ STRING(REPLACE "${CC_SOURCE_DIR}/include/" "" src ${src})
+ # check binary dir
+ STRING(REPLACE "${CC_BINARY_DIR}/include/" "" chgbin ${src})
+ IF (${chgbin} STREQUAL ${src})
+ SET(SRC_DIR ${CC_SOURCE_DIR})
+ ELSE()
+ SET(SRC_DIR ${CC_BINARY_DIR})
+ STRING(REPLACE "${CC_BINARY_DIR}/include/" "" src ${src})
+ ENDIF()
+ STRING(REPLACE "-" "_" src_id ${src})
+ STRING(REPLACE "mysql/" "" src_id ${src_id})
+ STRING(REPLACE "mysql/" "" src_name ${src})
+ STRING(REPLACE "mariadb/" "" src_name ${src_name})
+ STRING(REPLACE "mariadb/" "" src_id ${src_id})
+ IF(${src} MATCHES "mysql/")
+ SET(MARIADB_INCLUDEMYSQL_FILES "${MARIADB_INCLUDEMYSQL_FILES} <File Id=\"${src_id}\" Name=\"${src_name}\" DiskId=\"1\" Source=\"${SRC_DIR}/include/${src}\"/>\n")
+ ELSE()
+ SET(MARIADB_INCLUDE_FILES "${MARIADB_INCLUDE_FILES} <File Id=\"${src_id}\" Name=\"${src_name}\" DiskId=\"1\" Source=\"${SRC_DIR}/include/${src}\"/>\n")
+ ENDIF()
+ENDFOREACH()
+
+
+IF(NOT WIX_DIR)
+ SET(WIX_DIR $ENV{WIX}/bin)
+ENDIF()
+
+IF(NOT PACKAGE_STATUS_SUFFIX)
+ SET(MSI_PACKAGE "mariadb-connector-c-${PRODUCT_VERSION}-${PLATFORM}.msi")
+ELSE()
+ SET(MSI_PACKAGE "mariadb-connector-c-${PRODUCT_VERSION}-${PACKAGE_STATUS_SUFFIX}-${PLATFORM}.msi")
+ENDIF()
+
+IF(WITH_SIGNCODE)
+ IF(EXISTS "/tools/sign.bat")
+ ADD_CUSTOM_TARGET(SIGNMSI
+ DEPENDS ${MSI_PACKAGE}
+ COMMAND /tools/sign.bat ${MSI_PACKAGE})
+ ELSE()
+ ADD_CUSTOM_TARGET(SIGNMSI
+ DEPENDS ${MSI_PACKAGE}
+ COMMAND signtool sign ${SIGN_OPTIONS} ${MSI_PACKAGE})
+ ENDIF()
+ ADD_DEPENDENCIES(SIGNMSI ${MSI_PACKAGE})
+ SET_TARGET_PROPERTIES(SIGNMSI PROPERTIES EXCLUDE_FROM_ALL OFF)
+ENDIF()
+
+ADD_CUSTOM_TARGET(
+ ${MSI_PACKAGE}
+ DEPENDS WIXOBJ
+#mariadb-connector-c.wixobj
+ COMMAND ${WIX_DIR}/light.exe -ext WixUIExtension mariadb-connector-c.wixobj -o ${MSI_PACKAGE})
+
+ADD_CUSTOM_TARGET(WIXOBJ
+ DEPENDS mariadb-connector-c.xml}
+ COMMAND ${WIX_DIR}/candle.exe mariadb-connector-c.xml -o mariadb-connector-c.wixobj)
+
+SET_TARGET_PROPERTIES(${MSI_PACKAGE} PROPERTIES EXCLUDE_FROM_ALL OFF)
+SET_TARGET_PROPERTIES(${WIXOBJ} PROPERTIES EXCLUDE_FROM_ALL OFF)
+ADD_DEPENDENCIES(${MSI_PACKAGE} WIXOBJ)
+ADD_DEPENDENCIES(WIXOBJ libmariadb mariadbclient ${DYNAMIC_TARGETS})
+
+CONFIGURE_FILE(${CC_SOURCE_DIR}/win/packaging/mariadb-connector-c.xml.in
+ ${CC_BINARY_DIR}/win/packaging/mariadb-connector-c.xml)