mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-12-27 18:31:15 +08:00
New package: bde (#3413)
* Add initial implementation for BDE port * Implement compatibility with *nix platforms * Pin down BDE version to 3.2.0.0 * Change the folder structure to reflect version * .pc files in dbg build point to correct incl. dirs * Remove the default header listing all variables
This commit is contained in:
parent
6c8c96aad1
commit
1fa2673ab6
3
ports/bde/CONTROL
Normal file
3
ports/bde/CONTROL
Normal file
@ -0,0 +1,3 @@
|
||||
Source: bde
|
||||
Version: 3.2.0.0
|
||||
Description: Basic Development Environment - a set of foundational C++ libraries used at Bloomberg.
|
141
ports/bde/portfile.cmake
Normal file
141
ports/bde/portfile.cmake
Normal file
@ -0,0 +1,141 @@
|
||||
include(vcpkg_common_functions)
|
||||
set(BDE_VERSION 3.2.0.0)
|
||||
set(BDE_TOOLS_VERSION 1.x)
|
||||
|
||||
# Paths used in build
|
||||
set(SOURCE_PATH_DEBUG ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/bde-${BDE_VERSION})
|
||||
set(SOURCE_PATH_RELEASE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/bde-${BDE_VERSION})
|
||||
|
||||
# Acquire Python 2 and add it to PATH
|
||||
vcpkg_find_acquire_program(PYTHON2)
|
||||
get_filename_component(PYTHON2_EXE_PATH ${PYTHON2} DIRECTORY)
|
||||
|
||||
# Acquire BDE Tools and add them to PATH
|
||||
vcpkg_from_github(
|
||||
OUT_SOURCE_PATH TOOLS_PATH
|
||||
REPO "bloomberg/bde-tools"
|
||||
REF d4b1a7670829228f4ec81ecdccc598ce03ae8e80
|
||||
SHA512 80af734c080adb225d5369157301ae0af18e02b1912351e34d23f5f2ba4e19f9ae2b5a367923f036330c9f9afd11a90cdf12680eb3e59b4297a312a1b713f17f
|
||||
HEAD_REF master
|
||||
)
|
||||
message(STATUS "Configure bde-tools-v${BDE_TOOLS_VERSION}")
|
||||
if(VCPKG_CMAKE_SYSTEM_NAME)
|
||||
set(ENV{PATH} "$ENV{PATH}:${PYTHON2_EXE_PATH}")
|
||||
set(ENV{PATH} "$ENV{PATH}:${TOOLS_PATH}/bin")
|
||||
else()
|
||||
set(ENV{PATH} "$ENV{PATH};${PYTHON2_EXE_PATH}")
|
||||
set(ENV{PATH} "$ENV{PATH};${TOOLS_PATH}/bin")
|
||||
endif()
|
||||
|
||||
# Acquire BDE sources
|
||||
vcpkg_from_github(
|
||||
OUT_SOURCE_PATH SOURCE_PATH
|
||||
REPO "bloomberg/bde"
|
||||
REF 3720d132d0879f19b9084cca62ebc75f1f24e1a3
|
||||
SHA512 234ebb71997f5b7d3951584235ead10f977689cef323ae1c198629a6b1995b1481d8a1515d827c46df10209bdc66e1f3cc7780dafee9ca0ff4172be47c460d78
|
||||
HEAD_REF master
|
||||
)
|
||||
|
||||
# Clean up previous builds
|
||||
file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel
|
||||
${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg)
|
||||
|
||||
# Identify waf executable and calculate configure args
|
||||
if(VCPKG_CMAKE_SYSTEM_NAME)
|
||||
set(WAF_COMMAND waf)
|
||||
else()
|
||||
set(WAF_COMMAND waf.bat)
|
||||
endif()
|
||||
set(CONFIGURE_COMMON_ARGS --use-flat-include-dir)
|
||||
if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
|
||||
set(CONFIGURE_COMMON_ARGS ${CONFIGURE_COMMON_ARGS} --abi-bits=32)
|
||||
elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
|
||||
set(CONFIGURE_COMMON_ARGS ${CONFIGURE_COMMON_ARGS} --abi-bits=64)
|
||||
else()
|
||||
message(FATAL_ERROR "Unsupported target architecture: ${VCPKG_TARGET_ARCHITECTURE}")
|
||||
endif()
|
||||
if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
|
||||
set(CONFIGURE_COMMON_ARGS ${CONFIGURE_COMMON_ARGS} --library-type=static)
|
||||
else()
|
||||
message(FATAL_ERROR "Unsupported library linkage: ${VCPKG_LIBRARY_LINKAGE}")
|
||||
endif()
|
||||
if(NOT VCPKG_CMAKE_SYSTEM_NAME)
|
||||
if(VCPKG_CRT_LINKAGE STREQUAL static)
|
||||
set(CONFIGURE_COMMON_ARGS ${CONFIGURE_COMMON_ARGS} --msvc-runtime-type=static)
|
||||
else()
|
||||
set(CONFIGURE_COMMON_ARGS ${CONFIGURE_COMMON_ARGS} --msvc-runtime-type=dynamic)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Configure debug
|
||||
message(STATUS "Configuring ${TARGET_TRIPLET}-dbg")
|
||||
vcpkg_execute_required_process(
|
||||
COMMAND ${WAF_COMMAND} configure ${CONFIGURE_COMMON_ARGS}
|
||||
--prefix=${CURRENT_PACKAGES_DIR}/debug --out=${SOURCE_PATH_DEBUG}
|
||||
--build-type=debug
|
||||
WORKING_DIRECTORY ${SOURCE_PATH}
|
||||
LOGNAME configure-${TARGET_TRIPLET}--dbg
|
||||
)
|
||||
message(STATUS "Configuring ${TARGET_TRIPLET}-dbg done")
|
||||
|
||||
# Build debug
|
||||
message(STATUS "Building ${TARGET_TRIPLET}-dbg")
|
||||
vcpkg_execute_required_process(
|
||||
COMMAND ${WAF_COMMAND} build
|
||||
WORKING_DIRECTORY ${SOURCE_PATH}
|
||||
LOGNAME build-${TARGET_TRIPLET}--dbg
|
||||
)
|
||||
message(STATUS "Building ${TARGET_TRIPLET}-dbg done")
|
||||
|
||||
# Install debug
|
||||
message(STATUS "Installing ${TARGET_TRIPLET}-dbg")
|
||||
vcpkg_execute_required_process(
|
||||
COMMAND ${WAF_COMMAND} install
|
||||
WORKING_DIRECTORY ${SOURCE_PATH}
|
||||
LOGNAME install-${TARGET_TRIPLET}--dbg
|
||||
)
|
||||
# Include files should not be duplicated
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
|
||||
# pkg-config files should point to correct include directory
|
||||
file(GLOB PC_FILES "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/*.pc")
|
||||
foreach(PC_FILE_NAME ${PC_FILES})
|
||||
file(READ "${PC_FILE_NAME}" _contents)
|
||||
string(REPLACE "includedir=\${prefix}/include" "includedir=\${prefix}/../include" _contents "${_contents}")
|
||||
file(WRITE "${PC_FILE_NAME}" "${_contents}")
|
||||
endforeach()
|
||||
message(STATUS "Installing ${TARGET_TRIPLET}-dbg done")
|
||||
|
||||
# Configure release
|
||||
message(STATUS "Configuring ${TARGET_TRIPLET}-rel")
|
||||
vcpkg_execute_required_process(
|
||||
COMMAND ${WAF_COMMAND} configure ${CONFIGURE_COMMON_ARGS}
|
||||
--prefix=${CURRENT_PACKAGES_DIR} --out=${SOURCE_PATH_RELEASE}
|
||||
--build-type=release
|
||||
WORKING_DIRECTORY ${SOURCE_PATH}
|
||||
LOGNAME configure-${TARGET_TRIPLET}--rel
|
||||
)
|
||||
message(STATUS "Configuring ${TARGET_TRIPLET}-rel done")
|
||||
|
||||
# Build release
|
||||
message(STATUS "Building ${TARGET_TRIPLET}-rel")
|
||||
vcpkg_execute_required_process(
|
||||
COMMAND ${WAF_COMMAND} build
|
||||
WORKING_DIRECTORY ${SOURCE_PATH}
|
||||
LOGNAME build-${TARGET_TRIPLET}--rel
|
||||
)
|
||||
message(STATUS "Building ${TARGET_TRIPLET}-rel done")
|
||||
|
||||
# Install release
|
||||
message(STATUS "Installing ${TARGET_TRIPLET}-rel")
|
||||
vcpkg_execute_required_process(
|
||||
COMMAND ${WAF_COMMAND} install
|
||||
WORKING_DIRECTORY ${SOURCE_PATH}
|
||||
LOGNAME install-${TARGET_TRIPLET}--rel
|
||||
)
|
||||
message(STATUS "Installing ${TARGET_TRIPLET}-rel done")
|
||||
|
||||
# Handle copyright
|
||||
file(INSTALL ${SOURCE_PATH}/LICENSE
|
||||
DESTINATION ${CURRENT_PACKAGES_DIR}/share/bde
|
||||
RENAME copyright
|
||||
)
|
Loading…
x
Reference in New Issue
Block a user