Has*_*yed 8 macros portability build-process compilation cmake
我需要一个CMAKE宏的语法,它可以从像lex/yacc这样的工具生成.cc和.h文件.
有人可以告诉我以下设计示例的语法:
说我有一个依赖于x.cc和xh的文件y.cc,提到的两个文件是由工具z_tool从文件xz生成的.这个语法是什么?
对于这个例子,假设y.cc将变成一个静态库,因为我对CMAKE很新,这个设计的例子的完整CMakellist.txt将非常有用.我正在寻找一个便携式解决方案作为工具我我正在使用Windows和UNIX变体.
ric*_*chq 15
而不是给你一个人为的例子的答案,这里是你使用flex和bison生成可执行文件的方式
find_package(BISON)
find_package(FLEX)
BISON_TARGET(MyParser parser.y ${CMAKE_CURRENT_BINARY_DIR}/parser.cc)
FLEX_TARGET(MyScanner lexer.l  ${CMAKE_CURRENT_BINARY_DIR}/lexer.cc)
ADD_FLEX_BISON_DEPENDENCY(MyScanner MyParser)
include_directories(${CMAKE_CURRENT_BINARY_DIR})
add_executable(Foo
  Foo.cc
  ${BISON_MyParser_OUTPUTS}
  ${FLEX_MyScanner_OUTPUTS})
target_link_libraries(Foo ${FLEX_LIBRARIES} ${BISON_LIBRARIES})
Run Code Online (Sandbox Code Playgroud)
CMake查找bison/flex软件包包含在默认安装中,因此这是跨平台的.
通常,要创建稍后将用作输入的输出,您可以使用add_custom_command函数.如果使用自定义命令的输出作为库或可执行文件的输入,则CMake知道在编译库/可执行目标的源之前运行自定义命令.
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           3958 次  |  
        
|   最近记录:  |