svf-tools
Version:
* <b>[TypeClone](https://github.com/SVF-tools/SVF/wiki/TypeClone) published in our [ECOOP paper](https://yuleisui.github.io/publications/ecoop20.pdf) is now available in SVF </b> * <b>SVF now uses a single script for its build. Just type [`source ./build.
34 lines (28 loc) • 1.27 kB
Plain Text
# Define the core library
add_library(SvfCore)
# Inherit compiler & linker options by publically linking against the interface library
target_link_libraries(SvfCore PUBLIC SvfFlags)
# Gather & set all of the core library's source files by globbing all .h and .cpp files (recursively)
file(GLOB_RECURSE SVF_CORE_HEADERS ${CMAKE_CURRENT_LIST_DIR}/include/*.h)
file(GLOB_RECURSE SVF_CORE_SOURCES ${CMAKE_CURRENT_LIST_DIR}/lib/*.cpp)
target_sources(
SvfCore
PUBLIC FILE_SET HEADERS
BASE_DIRS ${CMAKE_CURRENT_LIST_DIR}/include
FILES ${SVF_CORE_HEADERS}
PRIVATE ${SVF_CORE_SOURCES}
)
# Only expose the headers in the source tree to in-tree users of SVF
target_include_directories(SvfCore PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>)
# Set the library & .so version of the core library
set_target_properties(SvfCore PROPERTIES VERSION ${SVF_VERSION} SOVERSION ${SVF_VERSION_MAJOR})
# Install the core library's files to the regular/configured install tree
install(
TARGETS SvfCore
EXPORT SVFTargets
RUNTIME DESTINATION ${SVF_INSTALL_BINDIR}
LIBRARY DESTINATION ${SVF_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${SVF_INSTALL_LIBDIR}
FILE_SET HEADERS
DESTINATION ${SVF_INSTALL_INCLUDEDIR}
)