【发布时间】:2021-07-02 02:46:05
【问题描述】:
我对 cmake 不熟悉,但在 CMakeLists.txt 中我们这样设置目标共享库名称。
add_library( mylib SHARED ${source_list} )
这会生成 libmylib.so,CMakeLists.txt 中的其他设置是为 mylib 定义的,例如
关于 mylib
我们也可以使用 shell 环境变量来做一些选择性的设置,比如
target_compile_definitions( mylib PRIVATE -DQQQ -D... )
还可以使用 shell 环境变量来做一些选择性的事情。
if(defined env{MYVAR})
set(CMAKE_C_FLAGS "-g -DXYZ")
else()
set(CMAKE_C_FLAGS "-DXYZ")
endif()
如果我可以根据环境变量将目标共享库名称设置为变量,并在所有其他设置中使用选择的名称变量作为共享库名称,我会很高兴。换句话说,是否可以执行以下操作?
if (defined ENV{FOR_QEMU})
set_name(target_name "simlib_qemu")
else ()
set_name(target_name "simlib")
endif ()
add_library(target_name SHARED ${source_list} )
target_compile_definitions( target_name PRIVATE -DQQQ -D... )
...
【问题讨论】:
标签: cmake compilation