diff options
Diffstat (limited to 'src/CMakeLists.txt')
-rw-r--r-- | src/CMakeLists.txt | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 0000000..d5296b1 --- /dev/null +++ b/src/CMakeLists.txt | |||
@@ -0,0 +1,43 @@ | |||
1 | set(headers dlfcn.h) | ||
2 | set(sources dlfcn.c) | ||
3 | |||
4 | if (BUILD_SHARED_LIBS) | ||
5 | add_definitions(-DSHARED) | ||
6 | endif (BUILD_SHARED_LIBS) | ||
7 | |||
8 | add_library(dl ${sources}) | ||
9 | |||
10 | # Correctly export the location of installed includes in the target | ||
11 | target_include_directories(dl INTERFACE $<INSTALL_INTERFACE:include>) | ||
12 | |||
13 | install (TARGETS dl EXPORT dlfcn-win32-targets | ||
14 | RUNTIME DESTINATION bin | ||
15 | LIBRARY DESTINATION lib${LIB_SUFFIX} | ||
16 | ARCHIVE DESTINATION lib${LIB_SUFFIX}) | ||
17 | |||
18 | install (FILES ${headers} DESTINATION include) | ||
19 | |||
20 | # Export the targets (build tree) | ||
21 | export(EXPORT dlfcn-win32-targets | ||
22 | FILE "${CMAKE_BINARY_DIR}/dlfcn-win32-targets.cmake" | ||
23 | NAMESPACE dlfcn-win32:: | ||
24 | ) | ||
25 | |||
26 | # Write the CMake config file | ||
27 | set(CMAKE_CONF_INSTALL_DIR share/dlfcn-win32) | ||
28 | set(INCLUDE_INSTALL_DIR include) | ||
29 | include(CMakePackageConfigHelpers) | ||
30 | configure_package_config_file(../dlfcn-win32-config.cmake.in ${CMAKE_BINARY_DIR}/dlfcn-win32-config.cmake | ||
31 | INSTALL_DESTINATION ${CMAKE_CONF_INSTALL_DIR} | ||
32 | PATH_VARS INCLUDE_INSTALL_DIR | ||
33 | NO_CHECK_REQUIRED_COMPONENTS_MACRO) | ||
34 | |||
35 | # Install the targets (install) | ||
36 | install(EXPORT dlfcn-win32-targets | ||
37 | FILE dlfcn-win32-targets.cmake | ||
38 | NAMESPACE dlfcn-win32:: | ||
39 | DESTINATION ${CMAKE_CONF_INSTALL_DIR}) | ||
40 | |||
41 | # Install the CMake config file | ||
42 | install(FILES ${CMAKE_BINARY_DIR}/dlfcn-win32-config.cmake | ||
43 | DESTINATION ${CMAKE_CONF_INSTALL_DIR}) | ||