How to prevent CMAKE from creating a symlink for shared libraries ON BUILD (NOT ON INSTALL)

Viewed 328

I am building a project on linux with Bullet3 using CMAKE, and when building the entire solution it builds the output libraries of Bullet with the SOVERSION appended and creates a symlink without the version.

I do not like this behavior for my specific scenario, and I don't want to edit the bullet submodule's CMakeLists file.

Here's my CMake where I include bullet libs :

    set(USE_DOUBLE_PRECISION ON CACHE BOOL "" FORCE)
    set(BUILD_SHARED_LIBS ON CACHE BOOL "" FORCE)

    set(BUILD_BULLET3 OFF CACHE BOOL "" FORCE)
    set(BUILD_EGL OFF CACHE BOOL "" FORCE)
    set(BUILD_ENET OFF CACHE BOOL "" FORCE)
    set(BUILD_PYBULLET OFF CACHE BOOL "" FORCE)
    set(BUILD_OPENGL3_DEMOS OFF CACHE BOOL "" FORCE)
    set(BUILD_BULLET2_DEMOS OFF CACHE BOOL "" FORCE)
    set(BUILD_EXTRAS OFF CACHE BOOL "" FORCE)
    set(BUILD_UNIT_TESTS OFF CACHE BOOL "" FORCE)

    set(INSTALL_LIBS OFF CACHE BOOL "" FORCE)
    set(USE_MSVC_RUNTIME_LIBRARY_DLL OFF CACHE BOOL "" FORCE)
    set(USE_GRAPHICAL_BENCHMARK OFF CACHE BOOL "" FORCE)
    set(USE_SOFT_BODY_MULTI_BODY_DYNAMICS_WORLD OFF CACHE BOOL "" FORCE)
    set(BUILD_CPU_DEMOS OFF CACHE BOOL "" FORCE)
    set(USE_GLUT OFF CACHE BOOL "" FORCE)
    SET(INTERNAL_CREATE_MSVC_RELATIVE_PATH_PROJECTFILES OFF CACHE BOOL "" FORCE)
    SET(INTERNAL_ADD_POSTFIX_EXECUTABLE_NAMES OFF CACHE BOOL "" FORCE)

    add_subdirectory("${PROJECT_SOURCE_DIR}/src/bullet3")

I would like the resulting bullet libs to be only one file per lib in the build directory, not two, doesn't matter if it has the version appended or not... I just don't want a symlink there.

I know I could simply run a script after to delete these but that would break my workflow big time at the moment...

Surely there must be a way to tell CMAKE not to do that ??

I've read about NAMELINK_SKIP but if I understand correctly that is for the INSTALL command... but I am not even using the install command and I don't intend to in my project, I am currently getting the symlinks just with the initial build...

0 Answers
Related