Skip to content

Commit 473fe71

Browse files
committed
cmake updates
1 parent d9187a7 commit 473fe71

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed

CMakeLists.txt

+56
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,65 @@
11
cmake_minimum_required (VERSION 2.8.11)
22

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+
329
file (GLOB source src/*.c)
430
add_library (msym ${source})
531
if (BUILD_SHARED_LIBS)
632
set_target_properties (msym PROPERTIES
733
POSITION_INDEPENDENT_CODE "TRUE")
834
endif ()
935
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

Comments
 (0)