odbc支持windows出包

This commit is contained in:
liuheng
2023-03-22 09:22:05 +08:00
parent 365b228da3
commit 2532836e4f
5 changed files with 479 additions and 461 deletions

View File

@ -3,15 +3,30 @@ REM Copyright Huawei Technologies Co., Ltd. 2010-2018. All rights reserved.
setlocal setlocal
set WD=%__CD__% set WD=%__CD__%
set LIB_SECURITY_DIR=%WD%\..\..\..\..\platform\Huawei_Secure_C\Huawei_Secure_C_V100R001C01SPC010B002 set LIB_SECURITY_DIR=D:\windows_odbc\win32\open_source\Huawei_Secure_C_V100R001C01SPC010B002
set LIB_GAUSSDB_DIR=%WD%\..\..\..\..\..\server set LIB_GAUSSDB_DIR=D:\windows_odbc\win32\open_source\openGauss-server
set LIB_ODBC_DIR=%WD%\..\.. set LIB_ODBC_DIR=D:\windows_odbc\win32\open_source\openGauss-connector-odbc
set MINGW_DIR=C:\buildtools\mingw-8.1.0\msys32\mingw32 set MINGW_DIR=D:\buildtools\mingw-8.1.0\msys64\mingw32
set CMAKE_DIR=C:\buildtools\cmake set CMAKE_DIR=D:\env\cmake-3.26
set OPENSSL_DIR=D:\GaussDBKernel\open_source\output\openssl-win set OPENSSL_DIR=D:\windows_odbc\win32\open_source\output\openssl-win32
set OPENSSL_DIR=D:\windows_odbc\win32\open_source\openssl-OpenSSL_1_1_1n\openssl-OpenSSL_1_1_1n
set MSYS_SHELL=D:\buildtools\mingw-8.1.0\msys64\msys2_shell.cmd
cd %WD%
REM build openssl
cd %OPENSSL_DIR%
REM openssl config
%MSYS_SHELL% -defterm -mingw32 -no-start -full-path -here -c './Configure ^
--prefix=$PWD/openssl-win32 ^
shared mingw no-tests; make -j20; make install -j20; ^
cp $PWD/openssl-win32/bin/libssl-1_1.dll $PWD/openssl-win32; ^
cp $PWD/openssl-win32/bin/libcrypto-1_1.dll $PWD/openssl-win32; ^
rm -rf $PWD/../../output; ^
mkdir -p $PWD/../../output; mv $PWD/openssl-win32 $PWD/../../output/.' ^
cd %WD%
REM Build libsecurec.lib REM Build libsecurec.lib
cp win32/libpq/CMakeLists-huawei-securec.txt %LIB_SECURITY_DIR%/CMakeLists.txt cp win32/libpq/CMakeLists-huawei-securec.txt %LIB_SECURITY_DIR%/CMakeLists.txt
cd %LIB_SECURITY_DIR% cd %LIB_SECURITY_DIR%
@ -20,8 +35,8 @@ mkdir build
cd build cd build
cmake -DMINGW_DIR="%MINGW_DIR%" -D"CMAKE_MAKE_PROGRAM:PATH=%MINGW_DIR%/bin/make.exe" -G "MinGW Makefiles" .. cmake -DMINGW_DIR="%MINGW_DIR%" -D"CMAKE_MAKE_PROGRAM:PATH=%MINGW_DIR%/bin/make.exe" -G "MinGW Makefiles" ..
make make
cd %WD%
cd %WD%
REM Build libpq.lib REM Build libpq.lib
rm -rf %LIB_GAUSSDB_DIR%/libpq-win32 rm -rf %LIB_GAUSSDB_DIR%/libpq-win32
cp -r win32/libpq %LIB_GAUSSDB_DIR%/libpq-win32 cp -r win32/libpq %LIB_GAUSSDB_DIR%/libpq-win32
@ -33,8 +48,8 @@ mkdir build
cd build cd build
cmake -DMINGW_DIR="%MINGW_DIR%" -DOPENSSL_DIR="%OPENSSL_DIR%" -D"CMAKE_MAKE_PROGRAM:PATH=%MINGW_DIR%/bin/make.exe" -G "MinGW Makefiles" .. cmake -DMINGW_DIR="%MINGW_DIR%" -DOPENSSL_DIR="%OPENSSL_DIR%" -D"CMAKE_MAKE_PROGRAM:PATH=%MINGW_DIR%/bin/make.exe" -G "MinGW Makefiles" ..
make make
cd %WD%
cd %WD%
REM Build psqlodbc35w.lib REM Build psqlodbc35w.lib
cd %LIB_ODBC_DIR% cd %LIB_ODBC_DIR%
rm -rf libpq rm -rf libpq
@ -46,8 +61,8 @@ mkdir build
cd build cd build
cmake -DMINGW_DIR="%MINGW_DIR%" -DOPENSSL_DIR="%OPENSSL_DIR%" -D"CMAKE_MAKE_PROGRAM:PATH=%MINGW_DIR%/bin/make.exe" -G "MinGW Makefiles" .. cmake -DMINGW_DIR="%MINGW_DIR%" -DOPENSSL_DIR="%OPENSSL_DIR%" -D"CMAKE_MAKE_PROGRAM:PATH=%MINGW_DIR%/bin/make.exe" -G "MinGW Makefiles" ..
make make
cd %WD%
cd %WD%
REM Build psqlodbc.exe REM Build psqlodbc.exe
cd psqlodbc-installer cd psqlodbc-installer
rm -rf win32_dll rm -rf win32_dll
@ -65,11 +80,11 @@ rm -rf psqlodbc-installer/psqlodbc.exe
cd odbc_output cd odbc_output
%p7zip%\7z.exe a GaussDB-Kernel-V500R002C10-Windows-Odbc-X86.tar * %p7zip%\7z.exe a windows-odbc-x86.tar *
%p7zip%\7z.exe a -tgzip GaussDB-Kernel-V500R002C10-Windows-Odbc-X86.tar.gz *.tar %p7zip%\7z.exe a -tgzip windows-odbc-x86.tar.gz *.tar
del *.tar del *.tar
set OUTPUT_DIR=%LIB_ODBC_DIR%/output set OUTPUT_DIR=%LIB_ODBC_DIR%/output
mkdir "%OUTPUT_DIR%" mkdir "%OUTPUT_DIR%"
cp GaussDB-Kernel-V500R002C00-Windows-Odbc-X86.tar.gz %OUTPUT_DIR% cp windows-odbc-x86.tar.gz %OUTPUT_DIR%

View File

@ -5,7 +5,7 @@ SET(CMAKE_VERBOSE_MAKEFILEON ON)
MESSAGE(STATUS "Building LIBSECUREC Library.") MESSAGE(STATUS "Building LIBSECUREC Library.")
IF(NOT DEFINED MINGW_DIR) IF(NOT DEFINED MINGW_DIR)
set(MINGW_DIR "D:\\msys32\\mingw32") set(MINGW_DIR "D:\\buildtools\\mingw-8.1.0\\msys64\\mingw32")
ENDIF(NOT DEFINED MINGW_DIR) ENDIF(NOT DEFINED MINGW_DIR)
SET(PWD_DIR ${CMAKE_CURRENT_SOURCE_DIR}) SET(PWD_DIR ${CMAKE_CURRENT_SOURCE_DIR})

View File

@ -6,7 +6,7 @@ SET(CMAKE_VERBOSE_MAKEFILEON ON)
MESSAGE(STATUS "Building LIBPQ Library.") MESSAGE(STATUS "Building LIBPQ Library.")
IF(NOT DEFINED OPENSSL_DIR) IF(NOT DEFINED OPENSSL_DIR)
set(OPENSSL_DIR "D:\\Program_Files\\OpenSSL-Win32") set(OPENSSL_DIR "D:\\windows_odbc\\win32\\open_source\\output\\openssl-win32")
ENDIF(NOT DEFINED OPENSSL_DIR) ENDIF(NOT DEFINED OPENSSL_DIR)
IF(NOT DEFINED MINGW_DIR) IF(NOT DEFINED MINGW_DIR)
set(MINGW_DIR "D:\\buildtools\\mingw-8.1.0\\msys32\\mingw32") set(MINGW_DIR "D:\\buildtools\\mingw-8.1.0\\msys32\\mingw32")

View File

@ -3,7 +3,7 @@
################################################################# #################################################################
ifndef $(OPENSSL_DIR) ifndef $(OPENSSL_DIR)
OPENSSL_DIR:=/d/Program_Files/OpenSSL-Win32 OPENSSL_DIR:=/d/windows_odbc/win32/open_source/output/openssl-win32
endif endif
ifndef $(MINGW_DIR) ifndef $(MINGW_DIR)

View File

@ -1,14 +1,15 @@
# Copyright Huawei Technologies Co., Ltd. 2010-2018. All rights reserved.
#!/bin/bash #!/bin/bash
MD="mkdir -p" MD="mkdir -p"
RM="rm -rf" RM="rm -rf"
CP="cp -r" CP="cp -r"
ROOT_DIR=$LIB_GAUSSDB_DIR # ROOT_DIR=$LIB_GAUSSDB_DIR
#ROOT_DIR=`pwd`/.. ROOT_DIR=$(pwd)/..
SRC_DIR=$ROOT_DIR/../open_source/opengauss/src SRC_DIR=$ROOT_DIR/../openGauss-server/src
LIBPQ_WIN32_DIR=$ROOT_DIR/libpq-win32 LIBPQ_WIN32_DIR=$ROOT_DIR/libpq-win32
PREPARED_DIR=$LIBPQ_WIN32_DIR PREPARED_DIR=$LIBPQ_WIN32_DIR/
EXPORT_DIR=$LIBPQ_WIN32_DIR/libpq-export EXPORT_DIR=$LIBPQ_WIN32_DIR/libpq-export
LIB_SECURITY_DIR=$ROOT_DIR/../Huawei_Secure_C_V100R001C01SPC010B002
### function ### ### function ###
function copy_file() function copy_file()
@ -18,7 +19,7 @@ src=$2 #source directory
dst=$3 #target directory dst=$3 #target directory
if [ ! -f "$src"/"$file" ];then if [ ! -f "$src"/"$file" ];then
echo "Error: $src/$file doesn't exist, exit." echo "Error: $src/$file doesn't exist, exit."
exit -1 exit 1
fi fi
if [ ! -d $dst ];then if [ ! -d $dst ];then
$MD $dst $MD $dst
@ -32,31 +33,31 @@ function init_win_project()
{ {
if [ ! -f "$PREPARED_DIR"/include/pg_config.h ]; then if [ ! -f "$PREPARED_DIR"/include/pg_config.h ]; then
echo "Error: Header file pg_config.h for Windows lost, exit." echo "Error: Header file pg_config.h for Windows lost, exit."
exit -1 exit 1
fi fi
if [ ! -f "$PREPARED_DIR"/include/pg_config_os.h ]; then if [ ! -f "$PREPARED_DIR"/include/pg_config_os.h ]; then
echo "Error: Header file pg_config_os.h for Windows lost, exit." echo "Error: Header file pg_config_os.h for Windows lost, exit."
exit -1 exit 1
fi fi
if [ ! -f "$PREPARED_DIR"/include/pg_config_paths.h ]; then if [ ! -f "$PREPARED_DIR"/include/pg_config_paths.h ]; then
echo "Error: Header file pg_config_paths.h for Windows lost, exit." echo "Error: Header file pg_config_paths.h for Windows lost, exit."
exit -1 exit 1
fi fi
if [ ! -f "$PREPARED_DIR"/include/errcodes.h ]; then if [ ! -f "$PREPARED_DIR"/include/errcodes.h ]; then
echo "Error: Header file errcodes.h for Windows lost, exit." echo "Error: Header file errcodes.h for Windows lost, exit."
exit -1 exit 1
fi fi
if [ ! -f "$PREPARED_DIR"/include/libpqdll.def ]; then if [ ! -f "$PREPARED_DIR"/include/libpqdll.def ]; then
echo "Error: Interface definition file libpqdll.def for Windows lost, exit." echo "Error: Interface definition file libpqdll.def for Windows lost, exit."
exit -1 exit 1
fi fi
if [ ! -f "$PREPARED_DIR"/Makefile ];then if [ ! -f "$PREPARED_DIR"/Makefile ];then
echo "Error: Makefile for MinGW complier lost, exit." echo "Error: Makefile for MinGW complier lost, exit."
exit -1 exit 1
fi fi
if [ ! -f "$PREPARED_DIR"/CMakeLists.txt ];then if [ ! -f "$PREPARED_DIR"/CMakeLists.txt ];then
echo "Error: CMakeLists.txt for CMake && MinGW complier lost, exit." echo "Error: CMakeLists.txt for CMake && MinGW complier lost, exit."
exit -1 exit 1
fi fi
# $RM $LIBPQ_WIN32_DIR/include # $RM $LIBPQ_WIN32_DIR/include
$RM $LIBPQ_WIN32_DIR/src $RM $LIBPQ_WIN32_DIR/src
@ -101,6 +102,8 @@ copy_file cstrings_map.h $SRC_DIR/include/client_logic $LIBPQ_WIN32_DIR/in
copy_file gstrace_infra.h $SRC_DIR/include/gstrace $LIBPQ_WIN32_DIR/include/gstrace copy_file gstrace_infra.h $SRC_DIR/include/gstrace $LIBPQ_WIN32_DIR/include/gstrace
copy_file gstrace_infra_int.h $SRC_DIR/include/gstrace $LIBPQ_WIN32_DIR/include/gstrace copy_file gstrace_infra_int.h $SRC_DIR/include/gstrace $LIBPQ_WIN32_DIR/include/gstrace
copy_file gstrace_tool.h $SRC_DIR/include/gstrace $LIBPQ_WIN32_DIR/include/gstrace copy_file gstrace_tool.h $SRC_DIR/include/gstrace $LIBPQ_WIN32_DIR/include/gstrace
#include/lib
copy_file stringinfo.h $SRC_DIR/include/lib $LIBPQ_WIN32_DIR/include/lib
# include/libcomm # include/libcomm
#copy_file libcomm.h $SRC_DIR/include/libcomm $LIBPQ_WIN32_DIR/include/libcomm #copy_file libcomm.h $SRC_DIR/include/libcomm $LIBPQ_WIN32_DIR/include/libcomm
# include/libpq # include/libpq