@@ -8,37 +8,41 @@ if(EXISTS "${CMAKE_SOURCE_DIR}/.git")
88 set (default_build_type "Debug" )
99endif ()
1010
11+ # read the version number from the file "VERSION"
12+ file (STRINGS "VERSION" VERSION_CONTENTS)
13+ foreach (LINE ${VERSION_CONTENTS} )
14+ string (REGEX REPLACE " |\t " "" LINE ${LINE} )
15+ string (REGEX MATCH "^[^=]+" VERSION_NAME ${LINE} )
16+ string (REPLACE "${VERSION_NAME} =" "" VERSION_VALUE ${LINE} )
17+ set (${VERSION_NAME} "${VERSION_VALUE} " )
18+ endforeach ()
19+ set (OPEN_SIMULATION_INTERFACE_VERSION ${VERSION_MAJOR} .${VERSION_MINOR} .${VERSION_PATCH} )
20+
21+ set (${PROJECT_NAME} _SOVERSION "${VERSION_MAJOR} .${VERSION_MINOR} .${VERSION_PATCH} " )
22+ set (${PROJECT_NAME} _LIBVERSION "${VERSION_MAJOR} .${VERSION_MINOR} .${VERSION_PATCH} " )
23+
24+ # configure build version
1125if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES )
1226 message (STATUS "Setting build type to '${default_build_type} ' as none was specified." )
1327 set (CMAKE_BUILD_TYPE "${default_build_type} " CACHE
1428 STRING "Choose the type of build." FORCE)
1529 # Set the possible values of build type for cmake-gui
1630 set_property (CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS
17- "Debug" "Release" "MinSizeRel" "RelWithDebInfo" )
31+ "Debug" "Release" "MinSizeRel" "RelWithDebInfo" )
1832endif ()
1933
2034# Offer the user the choice of overriding the installation directories
2135set (INSTALL_LIB_DIR lib CACHE PATH "Installation directory for libraries" )
2236set (INSTALL_INCLUDE_DIR include CACHE PATH "Installation directory for header files" )
2337
2438if (WIN32 AND NOT CYGWIN )
25- set (DEF_INSTALL_CMAKE_DIR CMake)
39+ set (DEF_INSTALL_CMAKE_DIR CMake/ ${PROJECT_NAME} - ${VERSION_MAJOR} )
2640else ()
27- set (DEF_INSTALL_CMAKE_DIR lib/cmake/${PROJECT_NAME} )
41+ set (DEF_INSTALL_CMAKE_DIR lib/cmake/${PROJECT_NAME} - ${VERSION_MAJOR} )
2842endif ()
2943set (INSTALL_CMAKE_DIR ${DEF_INSTALL_CMAKE_DIR} CACHE PATH
3044 "Installation directory for CMake files" )
3145
32- # read the version number from the file "VERSION"
33- file (STRINGS "VERSION" VERSION_CONTENTS)
34- foreach (LINE ${VERSION_CONTENTS} )
35- string (REGEX REPLACE " |\t " "" LINE ${LINE} )
36- string (REGEX MATCH "^[^=]+" VERSION_NAME ${LINE} )
37- string (REPLACE "${VERSION_NAME} =" "" VERSION_VALUE ${LINE} )
38- set (${VERSION_NAME} "${VERSION_VALUE} " )
39- endforeach ()
40- set (OPEN_SIMULATION_INTERFACE_VERSION ${VERSION_MAJOR} .${VERSION_MINOR} .${VERSION_PATCH} )
41-
4246set (INSTALL_LIB_DIR ${INSTALL_LIB_DIR} /osi${VERSION_MAJOR} )
4347set (INSTALL_INCLUDE_DIR ${INSTALL_INCLUDE_DIR} /osi${VERSION_MAJOR} )
4448
@@ -99,14 +103,17 @@ set_property(TARGET ${PROJECT_NAME}_obj PROPERTY POSITION_INDEPENDENT_CODE ON)
99103
100104
101105add_library (${PROJECT_NAME} _pic STATIC $<TARGET_OBJECTS:${PROJECT_NAME} _obj>)
106+
102107target_include_directories (${PROJECT_NAME} _pic
103108 PUBLIC
104109 ${PROTOBUF_INCLUDE_DIR}
105110 $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR} >
106111 $<INSTALL_INTERFACE:${INSTALL_INCLUDE_DIR} >
107112)
108113target_link_libraries (${PROJECT_NAME} _pic PUBLIC ${PROTOBUF_LIBRARY} )
114+
109115set_property (TARGET ${PROJECT_NAME} _pic PROPERTY POSITION_INDEPENDENT_CODE ON )
116+
110117install (TARGETS ${PROJECT_NAME} _pic
111118 EXPORT ${PROJECT_NAME} _targets
112119 ARCHIVE DESTINATION "${INSTALL_LIB_DIR} " COMPONENT lib)
@@ -118,6 +125,16 @@ target_include_directories(${PROJECT_NAME}
118125 $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR} >
119126 $<INSTALL_INTERFACE:${INSTALL_INCLUDE_DIR} >
120127)
128+
129+ set_property (
130+ TARGET ${PROJECT_NAME}
131+ PROPERTY SOVERSION ${${PROJECT_NAME} _SOVERSION}
132+ )
133+ set_property (
134+ TARGET ${PROJECT_NAME}
135+ PROPERTY VERSION ${${PROJECT_NAME} _LIBVERSION}
136+ )
137+
121138target_link_libraries (${PROJECT_NAME} PUBLIC ${PROTOBUF_LIBRARY} )
122139install (TARGETS ${PROJECT_NAME}
123140 EXPORT ${PROJECT_NAME} _targets
0 commit comments