mirror of https://github.com/microsoft/vcpkg.git
114 lines
4.2 KiB
CMake
114 lines
4.2 KiB
CMake
if(VCPKG_TARGET_IS_WINDOWS)
|
|
vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY)
|
|
endif()
|
|
|
|
vcpkg_download_distfile(ARCHIVE
|
|
URLS "https://releases.mozilla.org/pub/nspr/releases/v${VERSION}/src/nspr-${VERSION}.tar.gz"
|
|
FILENAME "nspr-${VERSION}.tar.gz"
|
|
SHA512 55d21e196508ad29a179639fc8006f44b04dc2c0b5a85895e727f0a4f0ea37aeeceb936e37ac6b271b882a18e9f06d96133a60f19cee6345f8424c1c66e270ee
|
|
)
|
|
|
|
vcpkg_extract_source_archive(
|
|
SOURCE_PATH
|
|
ARCHIVE "${ARCHIVE}"
|
|
SOURCE_BASE "${VERSION}"
|
|
PATCHES
|
|
android.diff
|
|
library-linkage.diff
|
|
nsinstall-windows.diff
|
|
parallel.diff
|
|
unexport-ldflags.diff
|
|
)
|
|
|
|
set(OPTIONS "")
|
|
if(VCPKG_TARGET_IS_WINDOWS)
|
|
# https://firefox-source-docs.mozilla.org/nspr/nspr_build_instructions.html#enable-win32-target-win95
|
|
list(APPEND OPTIONS "--enable-win32-target=WIN95")
|
|
if(VCPKG_CRT_LINKAGE STREQUAL "static")
|
|
list(APPEND OPTIONS "--enable-static-rtl")
|
|
else()
|
|
list(APPEND OPTIONS "--disable-static-rtl")
|
|
endif()
|
|
endif()
|
|
|
|
if(VCPKG_TARGET_ARCHITECTURE MATCHES "64")
|
|
list(APPEND OPTIONS "--enable-64bit")
|
|
else()
|
|
list(APPEND OPTIONS "--disable-64bit")
|
|
endif()
|
|
|
|
set(MAKE_OPTIONS "")
|
|
if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
|
|
list(APPEND MAKE_OPTIONS BUILD_SHARED_LIBS=1)
|
|
endif()
|
|
|
|
if(VCPKG_CROSSCOMPILING)
|
|
list(APPEND MAKE_OPTIONS "NOW=${CURRENT_HOST_INSTALLED_DIR}/manual-tools/${PORT}/now${VCPKG_HOST_EXECUTABLE_SUFFIX}")
|
|
if(NOT CMAKE_HOST_WIN32)
|
|
list(APPEND MAKE_OPTIONS "NSINSTALL=${CURRENT_HOST_INSTALLED_DIR}/manual-tools/${PORT}/nsinstall${VCPKG_HOST_EXECUTABLE_SUFFIX}")
|
|
endif()
|
|
endif()
|
|
if(CMAKE_HOST_WIN32)
|
|
vcpkg_acquire_msys(MSYS_NSINSTALL
|
|
NO_DEFAULT_PACKAGES
|
|
DIRECT_PACKAGES
|
|
"https://mirror.msys2.org/msys/x86_64/nsinstall-4.36-1-x86_64.pkg.tar.zst"
|
|
36ceaf44db4368ef6319397cef1d82a752c68f3f7a16ca00e753ee7ae825058f22c38ccd750b53ea773212dffae838700be0d09288353db33d2f5197df9091df
|
|
)
|
|
list(APPEND MAKE_OPTIONS "NSINSTALL=${MSYS_NSINSTALL}/usr/bin/nsinstall${VCPKG_HOST_EXECUTABLE_SUFFIX}")
|
|
endif()
|
|
|
|
vcpkg_make_configure(
|
|
SOURCE_PATH "${SOURCE_PATH}/nspr"
|
|
AUTORECONF
|
|
OPTIONS
|
|
${OPTIONS}
|
|
OPTIONS_DEBUG
|
|
--enable-debug-rtl
|
|
OPTIONS_RELEASE
|
|
--disable-debug-rtl
|
|
)
|
|
vcpkg_make_install(OPTIONS ${MAKE_OPTIONS})
|
|
vcpkg_copy_pdbs()
|
|
vcpkg_fixup_pkgconfig()
|
|
|
|
set(install_dir_pattern "${CURRENT_INSTALLED_DIR}")
|
|
if(CMAKE_HOST_WIN32)
|
|
string(REGEX REPLACE [[^([a-zA-Z]):/]] [[/\1/]] install_dir_pattern "${install_dir_pattern}")
|
|
endif()
|
|
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin/nspr-config" "${install_dir_pattern}" "`dirname $0`/../../..")
|
|
file(GLOB BIN_RELEASE "${CURRENT_PACKAGES_DIR}/lib/*.dll" "${CURRENT_PACKAGES_DIR}/lib/*.pdb")
|
|
if(NOT BIN_RELEASE STREQUAL "")
|
|
file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/bin")
|
|
foreach(path ${BIN_RELEASE})
|
|
get_filename_component(name "${path}" NAME)
|
|
file(RENAME "${CURRENT_PACKAGES_DIR}/lib/${name}" "${CURRENT_PACKAGES_DIR}/bin/${name}")
|
|
endforeach()
|
|
endif()
|
|
if(NOT VCPKG_BUILD_TYPE)
|
|
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/bin/nspr-config" "${install_dir_pattern}/debug" "`dirname $0`/../../../..")
|
|
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
|
|
file(GLOB BIN_DEBUG "${CURRENT_PACKAGES_DIR}/debug/lib/*.dll" "${CURRENT_PACKAGES_DIR}/debug/lib/*.pdb")
|
|
if(NOT BIN_DEBUG STREQUAL "")
|
|
file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/bin")
|
|
foreach(path IN LISTS BIN_DEBUG)
|
|
get_filename_component(name "${path}" NAME)
|
|
file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/${name}" "${CURRENT_PACKAGES_DIR}/debug/bin/${name}")
|
|
endforeach()
|
|
endif()
|
|
endif()
|
|
|
|
if(NOT VCPKG_CROSSCOMPILING)
|
|
set(tool_names now nsinstall)
|
|
if(CMAKE_HOST_WIN32)
|
|
list(REMOVE_ITEM tool_names nsinstall)
|
|
endif()
|
|
vcpkg_copy_tools(
|
|
TOOL_NAMES ${tool_names}
|
|
SEARCH_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/config"
|
|
DESTINATION "${CURRENT_PACKAGES_DIR}/manual-tools/${PORT}"
|
|
)
|
|
endif()
|
|
|
|
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/nspr/LICENSE")
|