Reputation: 303
I have a project I can build on both Linux and Windows using CMake. The only issue is that Unix-style paths, in CMakeLists.txt, can't work on Windows (which uses backslashes instead of slashes, also requiring the drive letter).
Is there any way I can write a cross-platform CMakeLists.txt?
Upvotes: 6
Views: 8301
Reputation: 2292
You question affects different details:
GET_FILENAME_COMPONENT(X "${CMAKE_CURRENT_SOURCE_DIR}" REALPATH)
can solve the whole path without writing any absolute paths.PATH
environment variable. So you do not need to search them by yourself (with absolute paths) orFIND_PROGRAM()
to get the tools absolute path without guessing around. You could add hints in which registry entries and paths cmake will search for the tool orIF(WIN32)
or IF(UNIX)
.Hope, this helps...
Upvotes: 6