summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJari Vetoniemi <mailroxas@gmail.com>2014-04-12 22:42:37 +0300
committerJari Vetoniemi <mailroxas@gmail.com>2014-04-12 22:42:37 +0300
commit3f0f507e4f3bea6c5936be62aeff507ed6c4ae25 (patch)
tree70e6cd4fd4ac8e2b046d91990975dfd8db063a62
parent27b71db67a02b1fbdfb9394d03a322e50d0e995f (diff)
downloadbemenu-3f0f507e4f3bea6c5936be62aeff507ed6c4ae25.tar.gz
bemenu-3f0f507e4f3bea6c5936be62aeff507ed6c4ae25.tar.bz2
bemenu-3f0f507e4f3bea6c5936be62aeff507ed6c4ae25.zip
Improve CMakeLists and make stuff installable.
-rw-r--r--client/CMakeLists.txt8
-rw-r--r--lib/CMakeLists.txt28
2 files changed, 30 insertions, 6 deletions
diff --git a/client/CMakeLists.txt b/client/CMakeLists.txt
index aceaaf5..6af4e3e 100644
--- a/client/CMakeLists.txt
+++ b/client/CMakeLists.txt
@@ -1,7 +1,7 @@
# Sources
SET(CLIENT_SOURCE client.c)
-SET(CLIENT_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/../lib")
-SET(CLIENT_LIBRARIES bemenu)
+SET(CLIENT_INCLUDE ${BEMENU_INCLUDE_DIRS})
+SET(CLIENT_LIBRARIES ${BEMENU_LIBRARIES})
# Warnings
IF (CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
@@ -20,5 +20,9 @@ ENDIF ()
INCLUDE_DIRECTORIES(${CLIENT_INCLUDE})
ADD_EXECUTABLE(client ${CLIENT_SOURCE})
TARGET_LINK_LIBRARIES(client ${CLIENT_LIBRARIES})
+SET_TARGET_PROPERTIES(client PROPERTIES OUTPUT_NAME bemenu)
+
+# Install
+INSTALL(TARGETS client DESTINATION bin)
# vim: set ts=8 sw=4 tw=0 :
diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
index bfdb843..a52bc7b 100644
--- a/lib/CMakeLists.txt
+++ b/lib/CMakeLists.txt
@@ -8,9 +8,8 @@ SET(BEMENU_SOURCE
library.c
draw/curses.c
)
-SET(BEMENU_INCLUDE)
-SET(BEMENU_LIBRARIES)
+# Configure
CONFIGURE_FILE(version.h.in version.h @ONLY)
# Warnings
@@ -26,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} ${CMAKE_CURRENT_BINARY_DIR})
-ADD_LIBRARY(bemenu ${BEMENU_SOURCE})
-TARGET_LINK_LIBRARIES(bemenu ${BEMENU_LIBRARIES} dl)
+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 :