CMakeLists.txt Library path
Posted: Sat Aug 04, 2018 11:25 pm
I'm trying to use CodeLite 12.04 to generate CMakeLists.txt files for processing with CMake 3.12. (CMake is then supposed to generate .build files for Ninja, which should call the clang-cl.exe compiler (version 7.0) and link with either VS 2015 link.exe or lld-link.exe, using the VS standard library.)
In my project I have some libraries that I have prebuilt in a seperate directory that I would like to link with the object files of the current project. In the IDE, project settings, linker, Libraries Search Path contains the path to the .lib files.
However, when I generate the CMakeLists.txt file the section under "# Library path" only contains a line like this:
When I process this file with CMake, no LINK_PATH appear to be set and the build fails during linking because the libraries can not be found.
When I change the CMakeLists.txt file like this, the build works fine.
I was unable to find any information about the CMAKE_LDFLAGS variable on the internet, the (current) CMAKE documentation doesn't seem to contain any reference to it.
Why was the CMAKE_LDFLAGS syntax chosen over the link_directories syntax and how is it supposed to work? What does it tie into?
In my project I have some libraries that I have prebuilt in a seperate directory that I would like to link with the object files of the current project. In the IDE, project settings, linker, Libraries Search Path contains the path to the .lib files.
However, when I generate the CMakeLists.txt file the section under "# Library path" only contains a line like this:
Code: Select all
...
# Library path
set(CMAKE_LDFLAGS "${CMAKE_LDFLAGS} /LIBPATH:some-path /LIBPATH: ........... ")
...
When I change the CMakeLists.txt file like this, the build works fine.
Code: Select all
...
# Library path
link_directories(
some-path
.......
)
...
Why was the CMAKE_LDFLAGS syntax chosen over the link_directories syntax and how is it supposed to work? What does it tie into?