我正在尝试为android构建本机库,我需要执行条件编译。所以我在我的CMakeLists.txt文件中有以下代码
android {
...
defaultConfig {
...
externalNativeBuild {
cmake {
// Passes optional arguments to CMake.
arguments "-DTEST_VAL=OFF"
}
}
...
}
如您所见,我正在尝试获取选项值并编译库。
这是我提供此选项(build.gradle)文件的方式。
CMake Warning at CMakeLists.txt:35 (message): TEST MY VAL IS NOT EQUAL OFF ACTUAL VALUE: OFF
但在我的输出中我只看到:
sb.draw(gameoverImg, cam.position.x - gameoverImg.getWidth() / 2, cam.position.y + 95);
sb.draw(table, cam.position.x - table.getWidth() / 2 + 33, cam.position.y - 180);
font.getData().setScale(0.25f);
font.draw(sb, "" + currentHighScore, cam.position.x + 30, FlappyDemo2.HEIGHT / 2 - 200);
font.draw(sb, "" + score, cam.position.x + 30, FlappyDemo2.HEIGHT / 2 - 159);
myTextureRegion = new TextureRegion(playBtn2);
myTexRegionDrawable = new TextureRegionDrawable(myTextureRegion);
button = new ImageButton(myTexRegionDrawable); //Set the button up
button.setPosition(253/2, 112);
stage = new Stage(new ScreenViewport()); //Set up a stage for the ui
stage.addActor(button); //Add the button to the stage to perform rendering and take input.
myTextureRegion2 = new TextureRegion(scoreBtn);
myTexRegionDrawable2 = new TextureRegionDrawable(myTextureRegion2);
button2 = new ImageButton(myTexRegionDrawable2); //Set the button up
button2.setPosition(345, 185);
stage.addActor(button2);
那么如果OFF值不等于OFF呢? 我做错了什么。
非常感谢。
答案 0 :(得分:1)
EQUAL
运算符为“如果给定字符串或变量的值是有效数字并且等于右边的值,则为true。”
所以只做if (NOT TEST_VAL)
,因为只要给出变量的名称是“如果常量是1,ON,YES,TRUE,Y或非零数字,则为真。”
如果您无法更改代码或提出问题......
我已经进行了一些测试,以下工作正常:
set(TEST_VAL OFF)
set(OFF 0)
if(NOT ${TEST_VAL} EQUAL OFF)
message(STATUS "NOT \${TEST_VAL} EQUAL OFF")
endif()
由于EQUAL
需要一个数字进行比较,因此您可以将字符串OFF
定义为0
。
因此,在您的示例中,这等同于arguments "-DTEST_VAL=OFF -DOFF=0"
。
<强>参考强>