将旧的makefile转换为cmake[英] Converting old makefile to CMake

本文是小编为大家收集整理的关于将旧的makefile转换为cmake的处理方法,想解了将旧的makefile转换为cmake的问题怎么解决?将旧的makefile转换为cmake问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我正在尝试将旧的makefile代码转换为cmake.你能帮助我吗?这是我目前卡住的部分.我不知道如何将这些论点传递给编译器.

COMPILE_FLAGS = -c -m32 -O3 -fPIC -w -DSOMETHING -Wall -I src/sdk/core

ifdef STATIC
    OUTFILE = "bin/test_static.so"
    COMPILE_FLAGS_2 = ./lib/ABC.a
else
    OUTFILE = "bin/test.so"
    COMPILE_FLAGS_2 = -L/usr/lib/mysql -lABC
endif

all:
    g++ $(COMPILE_FLAGS) src/sdk/*.cpp
    g++ $(COMPILE_FLAGS) src/*.cpp
    g++ -fshort-wchar -shared -o $(OUTFILE) *.o $(COMPILE_FLAGS_2)
    rm -f *.o

谢谢!

推荐答案

让我们尝试将Makefile语法映射到CMake:

COMPILE_FLAGS = -c -m32 -O3 -fPIC -w -DSOMETHING -Wall -I src/sdk/core

此语句将直接映射到:

SET( COMPILE_FLAGS "-c -m32 -O3 -fPIC -w -DSOMETHING -Wall" )
INCLUDE_DIRECTORIES( src/sdk/core )

类型的条件:

ifdef STATIC
  # Do something
else
  # Do something else
endif

以这种方式在cmake中翻译:

OPTION(STATIC "Brief description" ON)
IF( STATIC )
  # Do something
ELSE()
  # Do something else
ENDIF()

要修改默认汇编标志,您可以适当地设置变量CMAKE_<LANG>_FLAGS_RELEASE,CMAKE_<LANG>_FLAGS_DEBUG等.

最后,可执行文件的汇编需要您使用ADD_EXECUTABLE命令,这在许多CMAKE教程中进行了解释.

无论如何,我建议您参考在线文档详细信息,因为这是完全解释和完整的.

本文地址:https://www.itbaoku.cn/post/359239.html