|
|
Line 1: |
Line 1: |
| set_target_properties
| | See https://cmake.org/cmake/help/v3.0/command/set_target_properties.html |
| Targets can have properties that affect how they are built.
| |
| | |
| set_target_properties(target1 target2 ...
| |
| PROPERTIES prop1 value1
| |
| prop2 value2 ...)
| |
| | |
| Set properties on a target. The syntax for the command is to list all
| |
| the files you want to change, and then provide the values you want to
| |
| set next. You can use any prop value pair you want and extract it
| |
| later with the GET_TARGET_PROPERTY command.
| |
| | |
| Properties that affect the name of a target's output file are as
| |
| follows. The PREFIX and SUFFIX properties override the default target
| |
| name prefix (such as "lib") and suffix (such as ".so"). IMPORT_PREFIX
| |
| and IMPORT_SUFFIX are the equivalent properties for the import library
| |
| corresponding to a DLL (for SHARED library targets). OUTPUT_NAME sets
| |
| the real name of a target when it is built and can be used to help
| |
| create two targets of the same name even though CMake requires unique
| |
| logical target names. There is also a <CONFIG>_OUTPUT_NAME that can
| |
| set the output name on a per-configuration basis. <CONFIG>_POSTFIX
| |
| sets a postfix for the real name of the target when it is built under
| |
| the configuration named by <CONFIG> (in upper-case, such as
| |
| "DEBUG_POSTFIX"). The value of this property is initialized when the
| |
| target is created to the value of the variable CMAKE_<CONFIG>_POSTFIX
| |
| (except for executable targets because earlier CMake versions which
| |
| did not use this variable for executables).
| |
| | |
| The LINK_FLAGS property can be used to add extra flags to the link
| |
| step of a target. LINK_FLAGS_<CONFIG> will add to the configuration
| |
| <CONFIG>, for example, DEBUG, RELEASE, MINSIZEREL, RELWITHDEBINFO.
| |
| DEFINE_SYMBOL sets the name of the preprocessor symbol defined when
| |
| compiling sources in a shared library. If not set here then it is set
| |
| to target_EXPORTS by default (with some substitutions if the target is
| |
| not a valid C identifier). This is useful for headers to know whether
| |
| they are being included from inside their library our outside to
| |
| properly setup dllexport/dllimport decorations. The COMPILE_FLAGS
| |
| property sets additional compiler flags used to build sources within
| |
| the target. It may also be used to pass additional preprocessor
| |
| definitions.
| |
| | |
| The LINKER_LANGUAGE property is used to change the tool used to link
| |
| an executable or shared library. The default is set the language to
| |
| match the files in the library. CXX and C are common values for this
| |
| property.
| |
| | |
| For shared libraries VERSION and SOVERSION can be used to specify the
| |
| build version and api version respectively. When building or
| |
| installing appropriate symlinks are created if the platform supports
| |
| symlinks and the linker supports so-names. If only one of both is
| |
| specified the missing is assumed to have the same version number. For
| |
| executables VERSION can be used to specify the build version. When
| |
| building or installing appropriate symlinks are created if the
| |
| platform supports symlinks. For shared libraries and executables on
| |
| Windows the VERSION attribute is parsed to extract a "major.minor"
| |
| version number. These numbers are used as the image version of the
| |
| binary.
| |
| | |
| There are a few properties used to specify RPATH rules. INSTALL_RPATH
| |
| is a semicolon-separated list specifying the rpath to use in installed
| |
| targets (for platforms that support it). INSTALL_RPATH_USE_LINK_PATH
| |
| is a boolean that if set to true will append directories in the linker
| |
| search path and outside the project to the INSTALL_RPATH.
| |
| SKIP_BUILD_RPATH is a boolean specifying whether to skip automatic
| |
| generation of an rpath allowing the target to run from the build tree.
| |
| BUILD_WITH_INSTALL_RPATH is a boolean specifying whether to link the
| |
| target in the build tree with the INSTALL_RPATH. This takes
| |
| precedence over SKIP_BUILD_RPATH and avoids the need for relinking
| |
| before installation. INSTALL_NAME_DIR is a string specifying the
| |
| directory portion of the "install_name" field of shared libraries on
| |
| Mac OSX to use in the installed targets. When the target is created
| |
| the values of the variables CMAKE_INSTALL_RPATH,
| |
| CMAKE_INSTALL_RPATH_USE_LINK_PATH, CMAKE_SKIP_BUILD_RPATH,
| |
| CMAKE_BUILD_WITH_INSTALL_RPATH, and CMAKE_INSTALL_NAME_DIR are used to
| |
| initialize these properties.
| |
| | |
| PROJECT_LABEL can be used to change the name of the target in an IDE
| |
| like visual studio. VS_KEYWORD can be set to change the visual studio
| |
| keyword, for example QT integration works better if this is set to
| |
| Qt4VSv1.0.
| |
| | |
| VS_SCC_PROJECTNAME, VS_SCC_LOCALPATH, VS_SCC_PROVIDER can be set to
| |
| add support for source control bindings in a Visual Studio project
| |
| file.
| |
| | |
| When a library is built CMake by default generates code to remove any
| |
| existing library using all possible names. This is needed to support
| |
| libraries that switch between STATIC and SHARED by a user option.
| |
| However when using OUTPUT_NAME to build a static and shared library of
| |
| the same name using different logical target names the two targets
| |
| will remove each other's files. This can be prevented by setting the
| |
| CLEAN_DIRECT_OUTPUT property to 1.
| |
| | |
| The PRE_INSTALL_SCRIPT and POST_INSTALL_SCRIPT properties are the old
| |
| way to specify CMake scripts to run before and after installing a
| |
| target. They are used only when the old INSTALL_TARGETS command is
| |
| used to install the target. Use the INSTALL command instead.
| |
| | |
| The EXCLUDE_FROM_DEFAULT_BUILD property is used by the visual studio
| |
| generators. If it is set to 1 the target will not be part of the
| |
| default build when you select "Build Solution".
| |