Setting CLion build and binary directory

2020-06-04 18:34发布

问题:

I'm trying to build libwebsockets inside of my project in CLion. During build libwebsockets creates a header file that is required by other files and puts it in PROJECT_BINARY_DIR. CLion builds everything inside a random build directory it creates for the project and the header file ends up in that directory. I've tried:

  • Setting the websockets_BINARY_DIR variable
  • Setting the CMAKE_RUNTIME_OUTPUT_DIRECTORY variable
  • Setting CMAKE_LIBRARY_OUTPUT_DIRECTORY variable
  • Changing every variable in the CMake cache to point away from CLion's random directory
  • Changing the build output path setting in CLion's preferences

None of these work, Which leads me to my questions:

  • Is there a way to tell CLion where to build (not just where to put some of its output buthow to override the random directory it chooses).
  • If there isn't a way to tell CLion where to build, is there another variable that I should be setting?

回答1:

I don't know how to set build dir.

Examples of how to set up bin directory with Clion below

set(dir ${CMAKE_CURRENT_SOURCE_DIR})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${dir}/bin")

or (separate for .exe, .dll, .lib):

set(dir ${CMAKE_CURRENT_SOURCE_DIR})
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${dir}/lib")
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${dir}/lib")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${dir}/bin")

Also I added link about how to set up build directory: https://stackoverflow.com/a/28200869/3001953

But it soesn't work in my case (Clion 1.1).



回答2:

You may also have a look at the Clion built-in path variables: https://www.jetbrains.com/help/clion/2019.2/absolute-path-variables.html