Hi,

The result of a thread on k-c-d is that I want to make it possible to 
install headers for a test library if done deliberately:

http://thread.gmane.org/gmane.comp.kde.devel.core/65708

I'm no cmake guru yet, so I wanted to post the patch I made for review.

The idea is to be able to checkout kdelibs/kdeui/tests/proxymodeltestsuite 
standalone and make install will install the library and its headers, 
otherwise (if not in kdelibs/kdeui/tests/proxymodeltestsuite) the library 
and its headers are not installed. It should also be Qt only as the test 
suite does not depend on KDE.

It WorksForMe(TM) already, so for review I just want to make sure I haven't 
put anything in there which would break 'normal' kdelibs builds.

All the best,

Steve.
diff --git a/kdeui/tests/proxymodeltestsuite/CMakeLists.txt b/kdeui/tests/proxymodeltestsuite/CMakeLists.txt
index c011acc..f11bc66 100644
--- a/kdeui/tests/proxymodeltestsuite/CMakeLists.txt
+++ b/kdeui/tests/proxymodeltestsuite/CMakeLists.txt
@@ -2,11 +2,18 @@ project(proxymodeltestsuite)
 
 set( EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR} )
 
+if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")
+  find_package(Qt4 REQUIRED)
+  find_package(Automoc4 REQUIRED)
+  cmake_minimum_required(VERSION 2.6)
+endif()
+
+include(${QT_USE_FILE})
 
-include_directories( ${KDE4_INCLUDES}
-  ${CMAKE_CURRENT_BINARY_DIR}
-  ${CMAKE_CURRENT_BINARY_DIR}/..
-  ${CMAKE_CURRENT_SOURCE_DIR}/..
+include_directories(
+  ${QT_INCLUDES}
+  ${PROJECT_BINARY_DIR}
+  ${PROJECT_SOURCE_DIR}
 )
 
 set(proxymodeltestsuite_SRCS
@@ -30,16 +37,25 @@ qt4_add_resources(
   ${eventlogger_RCSS}
 )
 
+if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")
+  set(GRANTLEE_FIND_ARG REQUIRED)
+else ()
+  set(GRANTLEE_FIND_ARG QUIET)
+endif()
+
 # Grantlee is used for generating compilable code by the ModelEventLogger.
 # If Grantlee is not found, the logger does nothing.
-find_package(Grantlee QUIET)
-macro_log_feature(Grantlee_FOUND
-  "Grantlee"
-  "Grantlee template system"
-  "http://www.grantlee.org"; FALSE
-  "0.1.0"
-  "Required for the model logging feature"
-)
+find_package(Grantlee ${GRANTLEE_FIND_ARG})
+
+if(NOT "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")
+  macro_log_feature(Grantlee_FOUND
+    "Grantlee"
+    "Grantlee template system"
+    "http://www.grantlee.org"; FALSE
+    "0.1.0"
+    "Required for the model logging feature"
+  )
+endif()
 
 if (Grantlee_FOUND)
 
@@ -51,10 +67,17 @@ if (Grantlee_FOUND)
 
 endif()
 
-kde4_add_library(proxymodeltestsuite SHARED
-  ${proxymodeltestsuite_SRCS}
-  ${eventlogger_RCS_SRCS}
-)
+if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")
+  automoc4_add_library(proxymodeltestsuite SHARED
+    ${proxymodeltestsuite_SRCS}
+    ${eventlogger_RCS_SRCS}
+  )
+else ()
+  kde4_add_library(proxymodeltestsuite SHARED
+    ${proxymodeltestsuite_SRCS}
+    ${eventlogger_RCS_SRCS}
+  )
+endif()
 
 target_link_libraries(proxymodeltestsuite
    ${KDE4_KDEUI_LIBS}
@@ -62,4 +85,34 @@ target_link_libraries(proxymodeltestsuite
    ${Grantlee_CORE_LIBRARIES}
 )
 
+if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")
+
+  set (LIB_SUFFIX "" CACHE STRING "Define suffix of library directory name (eg. '64')")
+  set( LIB_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX} )
+  set( BIN_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/bin )
+  set( INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/include )
+
+  message("BID" ${BIN_INSTALL_DIR} "LIB" ${LIB_INSTALL_DIR} )
+
+  install(TARGETS proxymodeltestsuite
+         RUNTIME DESTINATION ${BIN_INSTALL_DIR}
+         LIBRARY DESTINATION ${LIB_INSTALL_DIR}
+         ARCHIVE DESTINATION ${LIB_INSTALL_DIR}
+         COMPONENT Devel
+  )
+
+  install(FILES
+    dynamictreemodel.h
+    dynamictreewidget.h
+    modelcommander.h
+    modelspy.h
+    modelselector.h
+    modeltest.h
+    proxymodeltest.h
+    modeldumper.h
+    modeleventlogger.h
+    indexfinder.h
+    DESTINATION ${INCLUDE_INSTALL_DIR}
+  )
+endif()
 

_______________________________________________
Kde-buildsystem mailing list
[email protected]
https://mail.kde.org/mailman/listinfo/kde-buildsystem

Reply via email to