Ответ 1
Используйте либо целевые свойства PREFIX
, либо OUTPUT_NAME
:
set_target_properties(new_thing PROPERTIES PREFIX "")
или
set_target_properties(new_thing PROPERTIES OUTPUT_NAME "new_thing")
Некоторые библиотеки следуют различным соглашениям для своих имен файлов, таких как библиотеки PAM - pam_unix.so
, а не libpam_unix.so
.
Как вы переопределите имя файла целевой библиотеки в CMake, чтобы получить что-то вроде new_thing.so
вместо стандартного libnew_thing.so
?
Используйте либо целевые свойства PREFIX
, либо OUTPUT_NAME
:
set_target_properties(new_thing PROPERTIES PREFIX "")
или
set_target_properties(new_thing PROPERTIES OUTPUT_NAME "new_thing")
Так как это связано с именем файла, , вы можете подумать о install
для ответа. (И, конечно же, есть предложение RENAME
, но это красная селедка.)
Вместо этого измените target
, используя команду set_target_properties
.
Объекты библиотеки имеют встроенное свойство PREFIX
. Другим релевантным является SUFFIX
. Эти два свойства привязаны к целевому имени, чтобы определить окончательное имя файла при установке.
Для OQ:
# By default, the library filename will be `libnew_thing.so`
add_library(new_thing ${NEW_THING_SRCS})
# This changes the filename to `new_thing.so`
set_target_properties(new_thing PROPERTIES PREFIX "")
Скажем, вы также хотели, чтобы имя файла имело версию:
# This then changes the filename to `new_thing.so.1`,
# if the version is set to "1".
set_target_properties(new_thing
PROPERTIES PREFIX ""
SUFFIX ".so.${NEW_THING_VER}"
)