|
1 | 1 | cmake_minimum_required (VERSION 2.8.11)
|
2 | 2 |
|
| 3 | +project(libmsym C) |
| 4 | + |
| 5 | +set(LIBMSYM_MAJOR_VERSION 0) |
| 6 | +set(LIBMSYM_MINOR_VERSION 1) |
| 7 | +set(LIBMSYM_PATCH_VERSION 0) |
| 8 | +set(LIBMSYM_VERSION ${LIBMSYM_MAJOR_VERSION}.${LIBMSYM_MINOR_VERSION}.${LIBMSYM_PATCH_VERSION}) |
| 9 | + |
| 10 | +set(INSTALL_LIB_DIR lib CACHE PATH "Installation directory for msym library") |
| 11 | +set(INSTALL_INCLUDE_DIR include CACHE PATH "Installation directory for header files") |
| 12 | + |
| 13 | +if(WIN32 AND NOT CYGWIN) |
| 14 | + set(DEF_INSTALL_CMAKE_DIR CMake) |
| 15 | +else() |
| 16 | + set(DEF_INSTALL_CMAKE_DIR lib/cmake/libmsym) |
| 17 | +endif() |
| 18 | +set(INSTALL_CMAKE_DIR ${DEF_INSTALL_CMAKE_DIR} CACHE PATH "Installation directory for CMake files") |
| 19 | + |
| 20 | +foreach(p LIB BIN INCLUDE CMAKE) |
| 21 | + set(var INSTALL_${p}_DIR) |
| 22 | + if(NOT IS_ABSOLUTE "${${var}}") |
| 23 | + set(${var} "${CMAKE_INSTALL_PREFIX}/${${var}}") |
| 24 | + endif() |
| 25 | +endforeach() |
| 26 | + |
| 27 | +include_directories("${PROJECT_SOURCE_DIR}") |
| 28 | + |
3 | 29 | file (GLOB source src/*.c)
|
4 | 30 | add_library (msym ${source})
|
5 | 31 | if (BUILD_SHARED_LIBS)
|
6 | 32 | set_target_properties (msym PROPERTIES
|
7 | 33 | POSITION_INDEPENDENT_CODE "TRUE")
|
8 | 34 | endif ()
|
9 | 35 | set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99")
|
| 36 | +#set_target_properties (msym PROPERTIES |
| 37 | +# C_STANDARD 99 |
| 38 | +# C_STANDARD_REQUIRED ON) |
| 39 | + |
| 40 | +set_target_properties(msym PROPERTIES PUBLIC_HEADER "src/msym.h;src/msym_error.h") |
| 41 | + |
| 42 | +export(TARGETS msym FILE "${PROJECT_BINARY_DIR}/libmsymTargets.cmake") |
| 43 | + |
| 44 | +export(PACKAGE libmsym) |
| 45 | + |
| 46 | +file(RELATIVE_PATH REL_INCLUDE_DIR "${INSTALL_CMAKE_DIR}" "${INSTALL_INCLUDE_DIR}") |
| 47 | +set(CONF_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}" "${PROJECT_BINARY_DIR}") |
| 48 | +configure_file(libmsymConfig.cmake.in "${PROJECT_BINARY_DIR}/libmsymConfig.cmake" @ONLY) |
| 49 | +set(CONF_INCLUDE_DIRS "\${LIBMSYM_CMAKE_DIR}/${REL_INCLUDE_DIR}") |
| 50 | +configure_file(libmsymConfig.cmake.in "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/libmsymConfig.cmake" @ONLY) |
| 51 | +configure_file(libmsymConfigVersion.cmake.in "${PROJECT_BINARY_DIR}/libmsymConfigVersion.cmake" @ONLY) |
| 52 | + |
| 53 | +install(FILES |
| 54 | + "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/libmsymConfig.cmake" |
| 55 | + "${PROJECT_BINARY_DIR}/libmsymConfigVersion.cmake" |
| 56 | + DESTINATION "${INSTALL_CMAKE_DIR}") |
| 57 | + |
| 58 | +install(TARGETS msym |
| 59 | + EXPORT libmsymTargets |
| 60 | + RUNTIME DESTINATION "${INSTALL_BIN_DIR}" |
| 61 | + ARCHIVE DESTINATION "${INSTALL_LIB_DIR}" |
| 62 | + PUBLIC_HEADER DESTINATION "${INSTALL_INCLUDE_DIR}/libmsym" |
| 63 | + LIBRARY DESTINATION "${INSTALL_LIB_DIR}" ) |
| 64 | + |
| 65 | +install(EXPORT libmsymTargets DESTINATION "${INSTALL_CMAKE_DIR}") |
0 commit comments