sapling/CMake/FBMercurialFeatures.cmake
Wez Furlong a545acbbd4 eden: add C datapack/treemanifest to cmake build
Summary:
This requires our mercurial repo to be available during
the build; I symlink it in alongside `common` in the `oss` dir,
and point it up to `scm/hg`.

This has partial support for mononoke too, but will need to add
logic to getdeps to pull down the proxygen repo and build that.

Reviewed By: simpkins

Differential Revision: D13480146

fbshipit-source-id: 54874245015af83a259f56944d2e5f87615baee7
2019-01-17 18:52:53 -08:00

48 lines
1.4 KiB
CMake

# TODO: once we've gotten the rust datapack code integrated and
# building, update getdeps.py to optionally pull from the fb-mercurial
# repo on github and adjust this logic to use either the code from
# the local fbsource repo when building at FB, or from the
# external dir when building the OSS build.
if (IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/fb-mercurial)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/fb-mercurial)
add_library(
libmpatch
STATIC
fb-mercurial/mercurial/mpatch.c
)
add_library(
buffer
STATIC
fb-mercurial/lib/clib/buffer.c
)
add_library(
datapack
STATIC
fb-mercurial/hgext/extlib/cstore/datapackstore.cpp
fb-mercurial/hgext/extlib/cstore/deltachain.cpp
fb-mercurial/hgext/extlib/cstore/uniondatapackstore.cpp
fb-mercurial/hgext/extlib/ctreemanifest/manifest.cpp
fb-mercurial/hgext/extlib/ctreemanifest/manifest_entry.cpp
fb-mercurial/hgext/extlib/ctreemanifest/manifest_fetcher.cpp
fb-mercurial/hgext/extlib/ctreemanifest/manifest_ptr.cpp
fb-mercurial/hgext/extlib/ctreemanifest/treemanifest.cpp
fb-mercurial/lib/cdatapack/cdatapack.c
)
target_link_libraries(
datapack
PUBLIC
libmpatch
buffer
${OPENSSL_LIBRARIES}
)
target_include_directories(
datapack
PUBLIC
${OPENSSL_INCLUDE_DIR}
)
set(EDEN_HAVE_HG_TREEMANIFEST ON)
endif()