| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- try_compile
- -----------
- Try building some code.
- ::
- try_compile(RESULT_VAR <bindir> <srcdir>
- <projectName> [targetName] [CMAKE_FLAGS flags...]
- [OUTPUT_VARIABLE <var>])
- Try building a project. In this form, srcdir should contain a
- complete CMake project with a CMakeLists.txt file and all sources.
- The bindir and srcdir will not be deleted after this command is run.
- Specify targetName to build a specific target instead of the 'all' or
- 'ALL_BUILD' target.
- ::
- try_compile(RESULT_VAR <bindir> <srcfile|SOURCES srcfile...>
- [CMAKE_FLAGS flags...]
- [COMPILE_DEFINITIONS flags...]
- [LINK_LIBRARIES libs...]
- [OUTPUT_VARIABLE <var>]
- [COPY_FILE <fileName> [COPY_FILE_ERROR <var>]])
- Try building an executable from one or more source files. In this
- form the user need only supply one or more source files that include a
- definition for 'main'. CMake will create a CMakeLists.txt file to
- build the source(s) as an executable. Specify COPY_FILE to get a copy
- of the linked executable at the given fileName and optionally
- COPY_FILE_ERROR to capture any error.
- In this version all files in bindir/CMakeFiles/CMakeTmp will be
- cleaned automatically. For debugging, --debug-trycompile can be
- passed to cmake to avoid this clean. However, multiple sequential
- try_compile operations reuse this single output directory. If you use
- --debug-trycompile, you can only debug one try_compile call at a time.
- The recommended procedure is to configure with cmake all the way
- through once, then delete the cache entry associated with the
- try_compile call of interest, and then re-run cmake again with
- --debug-trycompile.
- Some extra flags that can be included are, INCLUDE_DIRECTORIES,
- LINK_DIRECTORIES, and LINK_LIBRARIES. COMPILE_DEFINITIONS are
- -Ddefinition that will be passed to the compile line.
- The srcfile signature also accepts a LINK_LIBRARIES argument which may
- contain a list of libraries or IMPORTED targets which will be linked
- to in the generated project. If LINK_LIBRARIES is specified as a
- parameter to try_compile, then any LINK_LIBRARIES passed as
- CMAKE_FLAGS will be ignored.
- try_compile creates a CMakeList.txt file on the fly that looks like
- this:
- ::
- add_definitions( <expanded COMPILE_DEFINITIONS from calling cmake>)
- include_directories(${INCLUDE_DIRECTORIES})
- link_directories(${LINK_DIRECTORIES})
- add_executable(cmTryCompileExec sources)
- target_link_libraries(cmTryCompileExec ${LINK_LIBRARIES})
- In both versions of the command, if OUTPUT_VARIABLE is specified, then
- the output from the build process is stored in the given variable.
- The success or failure of the try_compile, i.e. TRUE or FALSE
- respectively, is returned in RESULT_VAR. CMAKE_FLAGS can be used to
- pass -DVAR:TYPE=VALUE flags to the cmake that is run during the build.
- Set variable CMAKE_TRY_COMPILE_CONFIGURATION to choose a build
- configuration.
|