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