Windows下编译Infact库

Windows下编译Infact库,第1张

Infact是Google研发的一套动态创建对象的C++库。其社区版本仅提供了基于Make的项目构建。而目前大多数开源系统均使用CMake作为跨平台的项目构建工具。

因此,本文提供了Infact CMake构建的方法。

一、下载源码
git clone https://github.com/google/infact.git
git checkout -b v1.0.8 v1.0.8
二、CMake配置

在src/infact目录下,新建CMakeLists.txt文件,添加以下内容,

SET(LIB_NAME Infact)

INCLUDE_DIRECTORIES(
	${CMAKE_CURRENT_SOURCE_DIR}
	${CMAKE_CURRENT_BINARY_DIR}
)

LINK_DIRECTORIES(
	${CMAKE_LIBRARY_PATH}
	${PROJECT_BINARY_DIR}/lib
)

SET(Infact_LIBS
)

# Headers
SET(Infact_HDRS
	environment.h
	environment-impl.h
	error.h
	factory.h
	interpreter.h
	stream-init.h
	stream-tokenizer.h	
)

SET(Infact_SRCS
	environment.cc
	environment-impl.cc
	error.cc
	factory.cc
	interpreter.cc
	stream-tokenizer.cc	
)

IF (MSVC)
    # Turn off deprecation warnings
    ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS)
    ADD_DEFINITIONS(-D_CRT_NONSTDC_NO_WARNINGS)
ENDIF(MSVC)

ADD_LIBRARY(${LIB_NAME} STATIC ${Infact_HDRS} ${Infact_SRCS})
TARGET_LINK_LIBRARIES(${LIB_NAME} ${Infact_LIBS})

SET_TARGET_PROPERTIES(${LIB_NAME} PROPERTIES DEBUG_POSTFIX "d")

# Install
SET(INSTALL_INCDIR include)
SET(INSTALL_BINDIR bin)
IF(WIN32)
    SET(INSTALL_LIBDIR bin)
    SET(INSTALL_ARCHIVEDIR lib)
ELSE(WIN32)
    SET(INSTALL_LIBDIR lib${LIB_POSTFIX})
    SET(INSTALL_ARCHIVEDIR lib${LIB_POSTFIX})
ENDIF(WIN32)

INSTALL(
    TARGETS ${LIB_NAME}
    RUNTIME DESTINATION ${INSTALL_BINDIR}
    LIBRARY DESTINATION ${INSTALL_LIBDIR}
    ARCHIVE DESTINATION ${INSTALL_ARCHIVEDIR}
)

INSTALL(
    FILES       ${HEADERS}
    DESTINATION ${INSTALL_INCDIR}/${LIB_NAME}
)

使用CMake进行项目构建,然后利用VS完成编译即可。

网络资料

Infacthttp://google.github.io/infact/

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1295100.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存