Hi Franck, I'd suggest going a little more robust by using both CMAKE_SHARED_LIBRARY_PREFIX and CMAKE_SHARED_LIBRARY_SUFFIX to generate a function at configure time to resolve the correct filename.
For example, util.h.in: #ifndef _UTIL_H_ #define _UTIL_H_ #include <stdio.h> static inline void get_library_filename(char* filename, const char* libname) { sprintf(filename, "@CMAKE_SHARED_LIBRARY_PREFIX@ %s@CMAKE_SHARED_LIBRARY_SUFFIX@", libname); } #endif /* _UTIL_H_ */ Then your CMakeLists.txt: configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/util.h.in ${CMAKE_CURRENT_BINARY_DIR}/util.h @ONLY ) add_executable(foo main.c ${CMAKE_CURRENT_BINARY_DIR}/util.h) target_include_directories(foo PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) And finally main.c: #include <stdio.h> #include <util.h> int main(int argc, char **argv) { char filename[256]; get_library_filename(filename, "foo"); printf("Library foo uses file %s\n", filename); return 0; } This will give you "libfoo.so" on Linux, "libfoo.dylib" on Apple, and " foo.dll" on Windows. ---------- Chuck Atkins Staff R&D Engineer, Scientific Computing Kitware, Inc. On Tue, Jan 9, 2018 at 10:04 AM, Franck Houssen <franck.hous...@inria.fr> wrote: > Thanks ! > > ----- Mail original ----- > > De: "Konstantin Tokarev" <annu...@yandex.ru> > > À: "Franck Houssen" <franck.hous...@inria.fr>, "CMake Mail List" < > cmake@cmake.org> > > Envoyé: Mardi 9 Janvier 2018 16:00:55 > > Objet: Re: [CMake] how to detect architecture ? > > > > > > > > 09.01.2018, 17:58, "Franck Houssen" <franck.hous...@inria.fr>: > > > Is there a way to detect architecture ? > > > > > > Seems there is nothing simple since these old threads : > > > https://stackoverflow.com/questions/11944060/how-to- > detect-target-architecture-using-cmake/12024211#12024211 > > > https://stackoverflow.com/questions/16796629/cmake- > create-architecture-aware-makefile > > > > > > Is there a solution now ? > > > > > > My need is quite simple: I have an executable who needs dlopen. To > test it, > > > I planned to write a bash script that would have done "./exe > > > /path/to/lib.so" on linux (debian, ...) OR "./exe /path/to/lib.dylib" > on > > > osx. To replace correctly so/dylib in the bash script I need to know > the > > > architecture. Any idea how to do this ? > > > > ${CMAKE_SHARED_LIBRARY_SUFFIX} > > > > Oh man ! Didn't know this one : exactly what I was looking for > > > > Franck > > > ,-- > > > > > > Powered by www.kitware.com > > > > > > Please keep messages on-topic and check the CMake FAQ at: > > > http://www.cmake.org/Wiki/CMake_FAQ > > > > > > Kitware offers various services to support the CMake community. For > more > > > information on each offering, please visit: > > > > > > CMake Support: http://cmake.org/cmake/help/support.html > > > CMake Consulting: http://cmake.org/cmake/help/consulting.html > > > CMake Training Courses: http://cmake.org/cmake/help/training.html > > > > > > Visit other Kitware open-source projects at > > > http://www.kitware.com/opensource/opensource.html > > > > > > Follow this link to subscribe/unsubscribe: > > > https://cmake.org/mailman/listinfo/cmake > > > > > > -- > > Regards, > > Konstantin > > > -- > > Powered by www.kitware.com > > Please keep messages on-topic and check the CMake FAQ at: > http://www.cmake.org/Wiki/CMake_FAQ > > Kitware offers various services to support the CMake community. For more > information on each offering, please visit: > > CMake Support: http://cmake.org/cmake/help/support.html > CMake Consulting: http://cmake.org/cmake/help/consulting.html > CMake Training Courses: http://cmake.org/cmake/help/training.html > > Visit other Kitware open-source projects at http://www.kitware.com/ > opensource/opensource.html > > Follow this link to subscribe/unsubscribe: > https://cmake.org/mailman/listinfo/cmake >
-- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: https://cmake.org/mailman/listinfo/cmake