114 lines
4.7 KiB
CMake
114 lines
4.7 KiB
CMake
CMAKE_MINIMUM_REQUIRED(VERSION 3.0)
|
|
PROJECT(LIBPQ)
|
|
|
|
SET(CMAKE_VERBOSE_MAKEFILEON ON)
|
|
|
|
MESSAGE(STATUS "Building LIBPQ Library.")
|
|
|
|
IF(NOT DEFINED OPENSSL_DIR)
|
|
set(OPENSSL_DIR "D:\\windows_odbc\\win32\\open_source\\output\\openssl-win32")
|
|
ENDIF(NOT DEFINED OPENSSL_DIR)
|
|
IF(NOT DEFINED MINGW_DIR)
|
|
set(MINGW_DIR "D:\\buildtools\\mingw-8.1.0\\msys32\\mingw32")
|
|
ENDIF(NOT DEFINED MINGW_DIR)
|
|
|
|
SET(MINGW32_DIR ${MINGW_DIR}/"i686-w64-mingw32")
|
|
SET(PWD_DIR ${CMAKE_CURRENT_SOURCE_DIR})
|
|
SET(LIBRARY_OUTPUT_PATH ${PWD_DIR}/output)
|
|
|
|
SET(CMAKE_CXX_COMPILER "${MINGW_DIR}/bin/i686-w64-mingw32-c++")
|
|
SET(CMAKE_SHARED_LINKER_FLAGS "-static -fstack-protector-all") #-static-libgcc -static-libstdc++"
|
|
|
|
IF(NOT DEFINED RELEASE)
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -DWIN32 -DFRONTEND -D_MINGW32 -fPIC -fPIE -pie -fpermissive -no-pthread -m32 -w")
|
|
ELSE(NOT DEFINED RELEASE)
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2 -DWIN32 -DFRONTEND -D_MINGW32 -fPIC -fPIE -pie -fpermissive -no-pthread -m32 -w")
|
|
ENDIF(NOT DEFINED RELEASE)
|
|
|
|
SET(DEF_FILE ${PWD_DIR}/src/common/interfaces/libpq/libpqdll.def)
|
|
|
|
INCLUDE_DIRECTORIES(${PWD_DIR}/include
|
|
${PWD_DIR}/include/port
|
|
${PWD_DIR}/include/port/win32
|
|
${PWD_DIR}/src
|
|
${PWD_DIR}/src/common/interfaces/libpq/client_logic_processor
|
|
${PWD_DIR}/src/common/interfaces/libpq/client_logic_hooks
|
|
${PWD_DIR}/src/common/interfaces/libpq/client_logic_common
|
|
${PWD_DIR}/src/common/interfaces/libpq/client_logic_cache
|
|
${PWD_DIR}/src/common/port
|
|
${PWD_DIR}/src/common/interfaces/libpq
|
|
${PWD_DIR}/src/common/interfaces/libpq/frontend_parser
|
|
${OPENSSL_DIR}/include
|
|
${MINGW_DIR}/include
|
|
${MINGW32_DIR}/include)
|
|
|
|
SET(SRC_LIST ${PWD_DIR}/src/common/port/win32setlocale.cpp
|
|
${PWD_DIR}/src/common/port/win32env.cpp
|
|
${PWD_DIR}/src/common/port/strlcpy.cpp
|
|
${PWD_DIR}/src/common/port/pgstrcasecmp.cpp
|
|
${PWD_DIR}/src/common/port/noblock.cpp
|
|
${PWD_DIR}/src/common/port/inet_aton.cpp
|
|
${PWD_DIR}/src/common/port/gs_strerror.cpp
|
|
${PWD_DIR}/src/common/port/gs_env_r.cpp
|
|
${PWD_DIR}/src/common/port/dirmod.cpp
|
|
${PWD_DIR}/src/common/port/cipher.cpp
|
|
${PWD_DIR}/src/common/port/win32error.cpp
|
|
${PWD_DIR}/src/common/port/thread.cpp
|
|
${PWD_DIR}/src/common/port/pgsleep.cpp
|
|
${PWD_DIR}/src/common/port/path.cpp
|
|
${PWD_DIR}/src/common/port/inet_net_ntop.cpp
|
|
${PWD_DIR}/src/common/port/gs_syscall_lock.cpp
|
|
${PWD_DIR}/src/common/port/gs_readdir.cpp
|
|
${PWD_DIR}/src/common/port/getaddrinfo.cpp
|
|
${PWD_DIR}/src/common/port/dirent.cpp
|
|
${PWD_DIR}/src/common/port/chklocale.cpp
|
|
${PWD_DIR}/src/common/interfaces/libpq/pthread-win32.cpp
|
|
${PWD_DIR}/src/common/interfaces/libpq/pqexpbuffer.cpp
|
|
${PWD_DIR}/src/common/interfaces/libpq/fe-protocol3.cpp
|
|
${PWD_DIR}/src/common/interfaces/libpq/fe-misc.cpp
|
|
${PWD_DIR}/src/common/interfaces/libpq/fe-connect.cpp
|
|
${PWD_DIR}/src/common/interfaces/libpq/win32.cpp
|
|
${PWD_DIR}/src/common/interfaces/libpq/fe-protocol2.cpp
|
|
${PWD_DIR}/src/common/interfaces/libpq/fe-lobj.cpp
|
|
${PWD_DIR}/src/common/interfaces/libpq/pqsignal.cpp
|
|
${PWD_DIR}/src/common/interfaces/libpq/libpq-events.cpp
|
|
${PWD_DIR}/src/common/interfaces/libpq/fe-secure.cpp
|
|
${PWD_DIR}/src/common/interfaces/libpq/fe-print.cpp
|
|
${PWD_DIR}/src/common/interfaces/libpq/fe-exec.cpp
|
|
${PWD_DIR}/src/common/interfaces/libpq/fe-auth.cpp
|
|
${PWD_DIR}/src/common/backend/utils/mb/encnames.cpp
|
|
${PWD_DIR}/src/common/backend/utils/mb/wchar.cpp
|
|
${PWD_DIR}/src/common/backend/libpq/sha2.cpp
|
|
${PWD_DIR}/src/common/backend/libpq/md5.cpp
|
|
${PWD_DIR}/src/common/backend/libpq/ip.cpp)
|
|
|
|
LINK_DIRECTORIES(${MINGW_DIR}/bin
|
|
${MINGW_DIR}/lib
|
|
${MINGW32_DIR}/lib)
|
|
|
|
ADD_LIBRARY(OBJ_LIBPQ OBJECT ${SRC_LIST})
|
|
SET_PROPERTY(TARGET OBJ_LIBPQ PROPERTY POSITION_INDEPENDENT_CODE 1)
|
|
|
|
ADD_LIBRARY(LIB_LIBPQ STATIC $<TARGET_OBJECTS:OBJ_LIBPQ>)
|
|
SET_TARGET_PROPERTIES(LIB_LIBPQ PROPERTIES PREFIX "")
|
|
SET_TARGET_PROPERTIES(LIB_LIBPQ PROPERTIES OUTPUT_NAME "libpq")
|
|
SET_TARGET_PROPERTIES(LIB_LIBPQ PROPERTIES SUFFIX ".lib")
|
|
|
|
ADD_LIBRARY(DLL_LIBPQ SHARED $<TARGET_OBJECTS:OBJ_LIBPQ> ${DEF_FILE})
|
|
SET_TARGET_PROPERTIES(DLL_LIBPQ PROPERTIES PREFIX "")
|
|
SET_TARGET_PROPERTIES(DLL_LIBPQ PROPERTIES OUTPUT_NAME "libpq")
|
|
|
|
FIND_LIBRARY(LIB_CRYPTO NAMES crypto PATHS ${OPENSSL_DIR}/lib)
|
|
FIND_LIBRARY(LIB_SSL NAMES ssl PATHS ${OPENSSL_DIR}/lib)
|
|
FIND_LIBRARY(LIB_SECUREC NAMES securec PATHS ${PWD_DIR}/lib)
|
|
|
|
TARGET_LINK_LIBRARIES(DLL_LIBPQ
|
|
-lwsock32
|
|
-lws2_32
|
|
-lsecur32
|
|
-lsecurity
|
|
-lpthread
|
|
${LIB_CRYPTO} ${LIB_SSL}
|
|
${LIB_SECUREC})
|
|
|