Predef always fails on Windows with build-dir directive
@grafikrobot 已经在做这个了。
开始于 2015年8月7日。
评估
这个 Issue 还没有评估数据。
描述
Hi Rene,
I'm trying to use predef in my Boost.Build project but have run into a strange issue. The check programs like "predef_check_as_cpp.exe" are supposed to return 1 when the check is false, right? I created a test case showing some strange issues on Windows:
Jamroot.jam:
import path ;
path-constant BUILD_PATH : build ;
import predef/check/predef : require check : predef-require predef-check ;
project pwiz
: requirements
[ predef-check "BOOST_COMP_GNUC >= 4.8" : : <cxxflags>-Wno-unused-local-typedefs ]
[ predef-check "BOOST_COMP_GNUC >= 4.9" : : <cxxflags>-fdiagnostics-color=always ]
# comment out the next line and predef works on Windows; on Linux it works either way
: build-dir $(BUILD_PATH)
: default-build release
;
exe predef_test : predef_test.cpp ;
On Windows/MSVC-12, that's causing this:
predef.predef_check_action check\predef\bin\msvc-12.0\debug\threading-multi\3567d106897dec7fe92d032e763161c1.txt
check\predef\bin\msvc-12.0\debug\threading-multi\predef_check_as_cpp.exe check\predef\bin\msvc-12.0\debug\threading-multi\predef_check_as_cpp.pdb "BOOST_COMP_GNUC >= 4.8" > check\predef\bin\msvc-12.0\debug\threading-multi\3567d106897dec7fe92d032e763161c1.txt
...failed predef.predef_check_action check\predef\bin\msvc-12.0\debug\threading-multi\3567d106897dec7fe92d032e763161c1.txt...
...removing check\predef\bin\msvc-12.0\debug\threading-multi\3567d106897dec7fe92d032e763161c1.txt
...failed updating 1 target...
Performing configuration checks
- BOOST_COMP_GNUC >= 4.8 : no
...found 1 target...
...updating 1 target...
predef.predef_check_action check\predef\bin\msvc-12.0\debug\threading-multi\150e0cfdde3cea25efb86d81e179ac7a.txt
check\predef\bin\msvc-12.0\debug\threading-multi\predef_check_as_cpp.exe check\predef\bin\msvc-12.0\debug\threading-multi\predef_check_as_cpp.pdb "BOOST_COMP_GNUC >= 4.9" > check\predef\bin\msvc-12.0\debug\threading-multi\150e0cfdde3cea25efb86d81e179ac7a.txt
...failed predef.predef_check_action check\predef\bin\msvc-12.0\debug\threading-multi\150e0cfdde3cea25efb86d81e179ac7a.txt...
...removing check\predef\bin\msvc-12.0\debug\threading-multi\150e0cfdde3cea25efb86d81e179ac7a.txt
...failed updating 1 target...
- BOOST_COMP_GNUC >= 4.9 : no
...found 1 target...
...updating 1 target...
config-cache.write C:\pwiz-src\trunk\pwiz\predef-test\build-nt-x86_64\project-cache.jam
...updated 1 target...
...found 16 targets...
You can see it's building as debug even if I build the rest of the project is building as release, and it's also passing the pdb to the check command. If I edit predef.jam to build as release, then it still fails, but this time it fails because the return code is 1. I don't understand that. The predef.jam code is pretty cryptic relative to my Boost.Build skills, so I'm not sure what's going on. If I get rid of the build-dir directive, it builds fine on Windows (although it's still debug). It builds fine either way on Linux.
- 主要语言
- C
- 星标
- 57
- 派生
- 87
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
boostorg/predef 的其他 Issue
-
bug
难度 3/5 1-2 天 新手友好度 62/100
-
难度 2/5 1-3 小时 新手友好度 45/100
-
难度 3/5 1-2 天 新手友好度 52/100
-
难度 4/5 3-5 天 新手友好度 35/100
-
ARM 32/64 bit logic & version?可能重新可做 @grafikrobot 于 1302 天前认领,目前没有进行中的 PR。 未关闭bug enhancement
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 78/100
libsdl-org/SDL#16584 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 82/100
维护者通常 1 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 63/100
FriendsofECCE/ECCE#519 · 2 条评论 ·
-
难度 1/5 1 小时以内 新手友好度 95/100
containers/crun#2415 ·
维护者通常 1 天内回复