diff options
Diffstat (limited to 'libmariadb/win/packaging/CMakeLists.txt')
-rw-r--r-- | libmariadb/win/packaging/CMakeLists.txt | 105 |
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) |