如何在Makefile中判断EXECUTOR为Emscripten并执行对应cmake逻辑
Makefile 中 EXECUTOR 变量判断的正确实现
首先修正你原有 Makefile 判断逻辑的语法问题,正确写法如下:
ifeq ($(EXECUTOR),Emscripten) emcmake cmake cmake/CMakeLists.txt else cmake cmake/CMakeLists.txt endif
注意要点
- Makefile 的
ifeq语法要求括号、参数、逗号之间必须保留空格,否则会触发语法错误 - 变量必须用
$(EXECUTOR)格式引用,直接写EXECUTOR会被识别为字符串常量,无法匹配传入的变量值 - 使用时可以通过命令行传参指定编译目标:
make EXECUTOR=Emscripten即可命中 Emscripten 分支逻辑
另外你贴出的 CMakeLists.txt 代码存在引号未闭合的问题,修正后写法如下:
if(${CMAKE_SYSTEM_NAME} STREQUAL "Emscripten") # 此处编写Emscripten专属逻辑 endif()
你可以在 Makefile 的分支中加入 $(info 命中Emscripten编译分支) 这类调试输出,执行时即可直观确认判断逻辑是否生效。
内容的提问来源于stack exchange,提问作者Hrant Nurijanyan
相关产品推荐
相关产品推荐

