Where would I go within CMakeLists.txt in order to change the name of the generated file?
Asked
Active
Viewed 1.3k times
13
-
possible duplicate of [Cmake executable name](http://stackoverflow.com/questions/24395517/cmake-executable-name) – herohuyongtao Jun 18 '15 at 02:31
-
http://www.cmake.org/examples/ -> add_executable (helloDemo demo.cxx demo_b.cxx) helloDemo is the output – Waxo Jun 18 '15 at 06:50
2 Answers
23
For an executable target see target properties OUTPUT_NAME and SUFFIX. The actual output name if a combination of OUTPUT_NAME
.SUFFIX
with
OUTPUT_NAME
defaulting to the target's nameSUFFIX
defaulting to- whatever is defined in CMAKE_EXECUTABLE_SUFFIX for your platform (e.g.
.exe
on Windows platforms) - if the suffix is empty the compiler might add an extension (see Default file extension of the executable created by g++ under Cygwin vs Linux)
- whatever is defined in CMAKE_EXECUTABLE_SUFFIX for your platform (e.g.
So the following example would override both defaults:
add_executable(a ...)
set_target_properties(
a
PROPERTIES
OUTPUT_NAME "myname"
SUFFIX ".myext"
)
Would generate myname.myext
for target a
.
For more details e.g. take a look at adding program suffix.
-
This is the answer I needed. I needed to know how to set the suffix so I could get the same file output for both windows and linux. This does that. Thanks! – Metric Crapton Aug 21 '20 at 20:20
3
Here's a simple CMakeLists.txt
cmake_minimum_required(VERSION 2.6 FATAL_ERROR)
project(demo)
add_executable(hello hello.cpp)
This CMakeLists.txt compiles a hello.cpp file to an executable named hello. You can name the executable anything by using the add_executable
statement.
add_executable(<executable-name> <source1> <source2> ...)

lakshayg
- 2,053
- 2
- 20
- 34