summaryrefslogtreecommitdiff
path: root/lib/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'lib/CMakeLists.txt')
-rw-r--r--lib/CMakeLists.txt42
1 files changed, 33 insertions, 9 deletions
diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
index 46c532b..a52bc7b 100644
--- a/lib/CMakeLists.txt
+++ b/lib/CMakeLists.txt
@@ -1,13 +1,16 @@
-SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY lib)
-SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY lib)
-
# Sources
SET(BEMENU_SOURCE
- bemenu.c
+ menu.c
+ item.c
+ list.c
+ util.c
+ filter.c
+ library.c
draw/curses.c
)
-SET(BEMENU_INCLUDE)
-SET(BEMENU_LIBRARIES)
+
+# Configure
+CONFIGURE_FILE(version.h.in version.h @ONLY)
# Warnings
IF (CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
@@ -22,9 +25,30 @@ IF (UNIX AND CMAKE_COMPILER_IS_GNUCC)
ENDIF ()
ENDIF ()
+# Parse soversion version
+STRING(REGEX MATCHALL "[0-9]+" VERSION_COMPONENTS ${BEMENU_VERSION})
+LIST(GET VERSION_COMPONENTS 0 SOVERSION)
+
# Compile
-INCLUDE_DIRECTORIES(${BEMENU_INCLUDE})
-ADD_LIBRARY(bemenu ${BEMENU_SOURCE})
-TARGET_LINK_LIBRARIES(bemenu ${BEMENU_LIBRARIES})
+INCLUDE_DIRECTORIES(${BEMENU_INCLUDE} ${CMAKE_CURRENT_BINARY_DIR})
+ADD_LIBRARY(bemenu SHARED ${BEMENU_SOURCE})
+SET_TARGET_PROPERTIES(bemenu PROPERTIES
+ VERSION ${BEMENU_VERSION}
+ SOVERSION ${SOVERSION})
+TARGET_LINK_LIBRARIES(bemenu dl)
+
+# Install
+INSTALL(TARGETS bemenu DESTINATION lib)
+INSTALL(FILES bemenu.h DESTINATION include)
+
+# Unexport
+SET(BEMENU_INCLUDES)
+SET(BEMENU_INCLUDE_DIRS)
+SET(BEMENU_LIBRARIES)
+
+# Export
+SET(BEMENU_INCLUDES "bemenu.h" CACHE STRING "bemenu includes exported from CMake")
+SET(BEMENU_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR} CACHE STRING "bemenu public header include path exported from CMake")
+SET(BEMENU_LIBRARIES "bemenu" "dl" CACHE STRING "bemenu libraries exported from CMake")
# vim: set ts=8 sw=4 tw=0 :