Browse Source

Add winbundle scripts

That is to have full dependencies in the sources
alexey 3 years ago
parent
commit
d3ff44de87

+ 5 - 0
dist/build_dockers/cross/sysroots/sysroot_windows_x64.tar.xz.md

@@ -57,6 +57,11 @@ $ tree -L 3
 │       │   ├── bin
 │       │   ├── include
 │       │   └── lib
+│       ├── zstd-v1.5.2-win64
+│       │   ├── README.md
+│       │   ├── dll
+│       │   └── include
+│       ├── ZSTDConfig.cmake
 │       └── PostgreSQLConfig.cmake
 └── sdk
     ├── VC

+ 30 - 0
misc/winbundle/EXPATConfig.cmake

@@ -0,0 +1,30 @@
+if ("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.5)
+	message (FATAL_ERROR "CMake >= 2.6.0 required")
+endif ()
+cmake_policy (PUSH)
+cmake_policy (VERSION 2.6...3.18)
+
+# Compute the installation prefix relative to this file.
+get_filename_component (_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH)
+if (CMAKE_EXE_LINKER_FLAGS MATCHES "x64")
+	set (_IMPORT_PREFIX "${_IMPORT_PREFIX}/Expat-1.95.8-x64")
+else()
+	set (_IMPORT_PREFIX "${_IMPORT_PREFIX}/Expat-1.95.8")
+endif ()
+
+# Create imported target EXPAT::EXPAT
+add_library (EXPAT::EXPAT SHARED IMPORTED)
+set_target_properties (EXPAT::EXPAT PROPERTIES
+		IMPORTED_LINK_INTERFACE_LANGUAGES "C"
+		INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/Source/lib"
+		IMPORTED_LOCATION "${_IMPORT_PREFIX}/Libs/libexpat.dll"
+		IMPORTED_IMPLIB "${_IMPORT_PREFIX}/Libs/libexpat.lib"
+		)
+
+if (CMAKE_VERSION VERSION_LESS 3.1.0)
+	message (FATAL_ERROR "This file relies on consumers using CMake 3.1.0 or greater.")
+endif ()
+
+# Cleanup temporary variables.
+set (_IMPORT_PREFIX)
+cmake_policy (POP)

+ 29 - 0
misc/winbundle/IconvConfig.cmake

@@ -0,0 +1,29 @@
+if ("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.5)
+	message (FATAL_ERROR "CMake >= 2.6.0 required")
+endif ()
+cmake_policy (PUSH)
+cmake_policy (VERSION 2.6...3.18)
+
+# Compute the installation prefix relative to this file.
+get_filename_component (_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH)
+if (CMAKE_EXE_LINKER_FLAGS MATCHES "x64")
+	set (_IMPORT_PREFIX "${_IMPORT_PREFIX}/libiconv-1.9.1-x64")
+else()
+	set (_IMPORT_PREFIX "${_IMPORT_PREFIX}/libiconv-1.9.1")
+endif ()
+
+# Create imported target Iconv::Iconv
+add_library (Iconv::Iconv SHARED IMPORTED)
+set_target_properties (Iconv::Iconv PROPERTIES
+		INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"
+		IMPORTED_IMPLIB "${_IMPORT_PREFIX}/lib/iconv.lib"
+		IMPORTED_LOCATION "${_IMPORT_PREFIX}/lib/iconv.dll"
+		)
+
+if (CMAKE_VERSION VERSION_LESS 3.1.0)
+	message (FATAL_ERROR "This file relies on consumers using CMake 3.1.0 or greater.")
+endif ()
+
+# Cleanup temporary variables.
+set (_IMPORT_PREFIX)
+cmake_policy (POP)

+ 50 - 0
misc/winbundle/MysqlConfig.cmake

@@ -0,0 +1,50 @@
+if ("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.5)
+	message (FATAL_ERROR "CMake >= 2.6.0 required")
+endif ()
+cmake_policy (PUSH)
+cmake_policy (VERSION 2.6...3.18)
+
+# Compute the installation prefix relative to this file.
+get_filename_component (_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH)
+if (CMAKE_EXE_LINKER_FLAGS MATCHES "x64")
+	set (_IMPORT_PREFIX "${_IMPORT_PREFIX}/mysql-x64")
+else()
+	set (_IMPORT_PREFIX "${_IMPORT_PREFIX}/mysql")
+endif ()
+
+if (MYSQL_USE_STATIC_LIBS)
+
+	# Create imported target Mysql::Mysql as static
+	add_library (Mysql::Mysql STATIC IMPORTED)
+	set_target_properties (Mysql::Mysql PROPERTIES
+			IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/opt/mysqlclient.lib"
+			IMPORTED_LOCATION_DEBUG "${_IMPORT_PREFIX}/lib/debug/mysqlclient.lib"
+			)
+else()
+
+	# Create imported target Mysql::Mysql as shared
+	add_library (Mysql::Mysql SHARED IMPORTED)
+	set_target_properties (Mysql::Mysql PROPERTIES
+			IMPORTED_IMPLIB_RELEASE "${_IMPORT_PREFIX}/lib/opt/libmysql.lib"
+			IMPORTED_IMPLIB_DEBUG "${_IMPORT_PREFIX}/lib/debug/libmysql.lib"
+			IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/opt/libmysql.dll"
+			IMPORTED_LOCATION_DEBUG "${_IMPORT_PREFIX}/lib/debug/libmysql.dll"
+			)
+endif()
+
+set_target_properties (Mysql::Mysql PROPERTIES
+		INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"
+		IMPORTED_CONFIGURATIONS "RELEASE;DEBUG"
+		IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C"
+		IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C"
+		MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release
+		MAP_IMPORTED_CONFIG_MINSIZEREL Release
+		)
+
+if (CMAKE_VERSION VERSION_LESS 3.1.0)
+	message (FATAL_ERROR "This file relies on consumers using CMake 3.1.0 or greater.")
+endif ()
+
+# Cleanup temporary variables.
+set (_IMPORT_PREFIX)
+cmake_policy (POP)

+ 114 - 0
misc/winbundle/OpenSSLConfig.cmake

@@ -0,0 +1,114 @@
+if ("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.5)
+	message (FATAL_ERROR "CMake >= 2.6.0 required")
+endif ()
+cmake_policy (PUSH)
+cmake_policy (VERSION 2.6...3.18)
+
+# Compute the installation prefix relative to this file.
+get_filename_component (_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH)
+message (STATUS "Using config for configuring openssl - ${_IMPORT_PREFIX}/OpenSSLConfig.cmake")
+# url is https://slproweb.com/products/Win32OpenSSL.html
+#message (NOTICE "Configure ssl installed from from https://slproweb.com/download/Win64OpenSSL-1_1_1k.msi")
+
+set (MSRT MD)
+if (OPENSSL_MSVC_STATIC_RT)
+	set (MSRT MT)
+endif()
+
+set (newdistr ON)
+if (CMAKE_SIZEOF_VOID_P EQUAL 8)
+	if (newdistr)
+		message (NOTICE "Configure ssl installed from from https://slproweb.com/download/Win64OpenSSL-1_1_1k.msi")
+		set (_IMPORT_PREFIX "${_IMPORT_PREFIX}/OpenSSL-Win64")
+		set (_ssl "libssl64")
+		set (_cr "libcrypto64")
+		set (_ssldll "libssl-1_1-x64")
+		set (_crdll "libcrypto-1_1-x64")
+	else()
+		message (STATUS "Consider to use fresh ssl from https://slproweb.com/download/Win64OpenSSL-1_1_1k.msi")
+		set (_IMPORT_PREFIX "${_IMPORT_PREFIX}/openssl-x64")
+		set (_ssl "ssleay32")
+		set (_cr "libeay32")
+		set (_ssldll "ssleay32")
+		set (_crdll "libeay32")
+	endif()
+else()
+	set (_IMPORT_PREFIX "${_IMPORT_PREFIX}/openssl-x32")
+	set (_ssl "libssl32")
+	set (_cr "libcrypto32")
+	set (_ssldll "libssl-1_1")
+	set (_crdll "libcrypto-1_1")
+endif ()
+
+if (OPENSSL_USE_STATIC_LIBS)
+
+	# Create imported target OpenSSL::SSL static
+	add_library (OpenSSL::SSL STATIC IMPORTED)
+	set_target_properties (OpenSSL::SSL PROPERTIES
+			INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"
+			INTERFACE_LINK_LIBRARIES "OpenSSL::Crypto"
+			IMPORTED_CONFIGURATIONS "RELEASE;DEBUG"
+			IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C"
+			IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C"
+			IMPORTED_LOCATION_DEBUG "${_IMPORT_PREFIX}/lib/VC/static/${_ssl}${MSRT}d.lib"
+			IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/VC/static/${_ssl}${MSRT}.lib"
+			MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release
+			MAP_IMPORTED_CONFIG_MINSIZEREL Release
+			)
+
+	# Create imported target OpenSSL::Crypto static
+	add_library (OpenSSL::Crypto STATIC IMPORTED)
+	set_target_properties (OpenSSL::Crypto PROPERTIES
+			INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"
+			IMPORTED_CONFIGURATIONS "RELEASE;DEBUG"
+			IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C"
+			IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C"
+			IMPORTED_LOCATION_DEBUG "${_IMPORT_PREFIX}/lib/VC/static/${_cr}${MSRT}d.lib"
+			IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/VC/static/${_cr}${MSRT}.lib"
+			MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release
+			MAP_IMPORTED_CONFIG_MINSIZEREL Release
+			)
+else ()
+
+	# Create imported target OpenSSL::SSL shared
+	add_library (OpenSSL::SSL SHARED IMPORTED)
+	set_target_properties (OpenSSL::SSL PROPERTIES
+			INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"
+			INTERFACE_LINK_LIBRARIES "OpenSSL::Crypto"
+			IMPORTED_CONFIGURATIONS "RELEASE;DEBUG"
+			IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C"
+			IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C"
+			IMPORTED_IMPLIB_DEBUG "${_IMPORT_PREFIX}/lib/VC/${_ssl}${MSRT}d.lib"
+			IMPORTED_IMPLIB_RELEASE "${_IMPORT_PREFIX}/lib/VC/${_ssl}${MSRT}.lib"
+			IMPORTED_LOCATION "${_IMPORT_PREFIX}/${_ssldll}.dll"
+			MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release
+			MAP_IMPORTED_CONFIG_MINSIZEREL Release
+			)
+
+	# Create imported target OpenSSL::Crypto shared
+	add_library (OpenSSL::Crypto SHARED IMPORTED)
+	set_target_properties (OpenSSL::Crypto PROPERTIES
+			INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"
+			IMPORTED_CONFIGURATIONS "RELEASE;DEBUG"
+			IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C"
+			IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C"
+			IMPORTED_IMPLIB_DEBUG "${_IMPORT_PREFIX}/lib/VC/${_cr}${MSRT}d.lib"
+			IMPORTED_IMPLIB_RELEASE "${_IMPORT_PREFIX}/lib/VC/${_cr}${MSRT}.lib"
+			IMPORTED_LOCATION "${_IMPORT_PREFIX}/${_crdll}.dll"
+			MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release
+			MAP_IMPORTED_CONFIG_MINSIZEREL Release
+			)
+endif()
+
+# Create imported target OpenSSL::applink
+add_library (OpenSSL::applink INTERFACE IMPORTED)
+set_target_properties (OpenSSL::applink PROPERTIES INTERFACE_SOURCES "${_IMPORT_PREFIX}/include/openssl/applink.c")
+
+if (CMAKE_VERSION VERSION_LESS 3.1.0)
+	message (FATAL_ERROR "This file relies on consumers using CMake 3.1.0 or greater.")
+endif ()
+
+# Cleanup temporary variables.
+set (_IMPORT_PREFIX)
+cmake_policy (POP)
+

+ 47 - 0
misc/winbundle/PostgreSQLConfig.cmake

@@ -0,0 +1,47 @@
+if ("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.5)
+	message (FATAL_ERROR "CMake >= 2.6.0 required")
+endif ()
+cmake_policy (PUSH)
+cmake_policy (VERSION 2.6...3.18)
+
+# Compute the installation prefix relative to this file.
+get_filename_component (_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH)
+if (CMAKE_SIZEOF_VOID_P EQUAL 8)
+	set (_IMPORT_PREFIX "${_IMPORT_PREFIX}/pgsql-x64")
+else()
+	set (_IMPORT_PREFIX "${_IMPORT_PREFIX}/pgsql-x32")
+endif ()
+
+# Create imported target PostgreSQL::PostgreSQL
+add_library (PostgreSQL::PostgreSQL SHARED IMPORTED)
+set_target_properties (PostgreSQL::PostgreSQL PROPERTIES
+		INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"
+		INTERFACE_LINK_LIBRARIES "PostgreSQL::SSL;PostgreSQL::Crypto;PostgreSQL::Iconv;PostgreSQL::Intl"
+		IMPORTED_IMPLIB "${_IMPORT_PREFIX}/lib/libpq.lib"
+		IMPORTED_LOCATION "${_IMPORT_PREFIX}/lib/libpq.dll"
+		)
+
+# Dependencies - have to be installed together
+add_library (PostgreSQL::SSL INTERFACE IMPORTED)
+set_target_properties (PostgreSQL::SSL PROPERTIES LOCATION "${_IMPORT_PREFIX}/bin/ssleay32.dll")
+
+add_library (PostgreSQL::Crypto INTERFACE IMPORTED)
+set_target_properties (PostgreSQL::Crypto PROPERTIES LOCATION "${_IMPORT_PREFIX}/bin/libeay32.dll")
+
+add_library (PostgreSQL::Iconv INTERFACE IMPORTED)
+add_library (PostgreSQL::Intl INTERFACE IMPORTED)
+if (CMAKE_SIZEOF_VOID_P EQUAL 8)
+	set_target_properties (PostgreSQL::Iconv PROPERTIES LOCATION "${_IMPORT_PREFIX}/bin/libiconv-2.dll")
+	set_target_properties (PostgreSQL::Intl PROPERTIES LOCATION "${_IMPORT_PREFIX}/bin/libintl-8.dll")
+else()
+	set_target_properties (PostgreSQL::Iconv PROPERTIES LOCATION "${_IMPORT_PREFIX}/bin/libiconv.dll")
+	set_target_properties (PostgreSQL::Intl PROPERTIES LOCATION "${_IMPORT_PREFIX}/bin/libintl.dll")
+endif()
+
+if (CMAKE_VERSION VERSION_LESS 3.1.0)
+	message (FATAL_ERROR "This file relies on consumers using CMake 3.1.0 or greater.")
+endif ()
+
+# Cleanup temporary variables.
+set (_IMPORT_PREFIX)
+cmake_policy (POP)

+ 5 - 0
misc/winbundle/README.md

@@ -0,0 +1,5 @@
+# CMake modules for win bundle
+
+Here is cmake modules which implements `find_package` for the libs used in windows builds. 
+
+See details at `dist/build_dockers/cross/sysroots/sysroot_windows_x64.tar.xz.md`

+ 29 - 0
misc/winbundle/ZSTDConfig.cmake

@@ -0,0 +1,29 @@
+if ("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.5)
+	message (FATAL_ERROR "CMake >= 2.6.0 required")
+endif ()
+cmake_policy (PUSH)
+cmake_policy (VERSION 2.6...3.18)
+
+# Compute the installation prefix relative to this file.
+get_filename_component (_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH)
+if (CMAKE_EXE_LINKER_FLAGS MATCHES "x64")
+	set (_IMPORT_PREFIX "${_IMPORT_PREFIX}/zstd-v1.5.2-win64")
+else()
+	message (FATAL_ERROR "Only x64 arch supported for zstd")
+endif ()
+
+# Create imported target ZSTD::ZSTD
+add_library ( ZSTD::ZSTD SHARED IMPORTED)
+set_target_properties ( ZSTD::ZSTD PROPERTIES
+		INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"
+		IMPORTED_IMPLIB "${_IMPORT_PREFIX}/dll/libzstd.dll.a"
+		IMPORTED_LOCATION "${_IMPORT_PREFIX}/dll/libzstd.dll"
+		)
+
+if (CMAKE_VERSION VERSION_LESS 3.1.0)
+	message (FATAL_ERROR "This file relies on consumers using CMake 3.1.0 or greater.")
+endif ()
+
+# Cleanup temporary variables.
+set (_IMPORT_PREFIX)
+cmake_policy (POP)