ferdnyc / rpms / qjson

Forked from rpms/qjson 4 years ago
Clone
Blob Blame History Raw
From 1295e1bbca68c9dd73719436319324a75d9a68a1 Mon Sep 17 00:00:00 2001
From: Rex Dieter <rdieter@math.unl.edu>
Date: Sun, 8 Nov 2015 07:26:57 -0600
Subject: [PATCH] support QJSON_SUFFIX, to be parallel-installable

Support full parallel-installability of Qt4/Qt5 builds. Besides,
Qt5 builds are binary incompatible anyway, so should not be using
the same library soname.
---
 CMakeLists.txt                      | 17 +++++++++--------
 src/CMakeLists.txt                  | 16 ++++++++--------
 tests/benchmarks/CMakeLists.txt     |  2 +-
 tests/cmdline_tester/CMakeLists.txt |  2 +-
 tests/parser/CMakeLists.txt         |  2 +-
 tests/qobjecthelper/CMakeLists.txt  |  2 +-
 tests/scanner/CMakeLists.txt        |  2 +-
 tests/serializer/CMakeLists.txt     |  2 +-
 8 files changed, 23 insertions(+), 22 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index a7c9e60..64e6ee0 100755
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -51,6 +51,7 @@ IF (Qt5Core_FOUND)
   INCLUDE_DIRECTORIES(${Qt5Core_INCLUDE_DIRS})
   ADD_DEFINITIONS(${Qt5Core_DEFINITIONS})
   SET(PC_Requires "Qt5Core")
+  set(QJSON_SUFFIX "-qt5")
   # Tell CMake to run moc when necessary:
   set(CMAKE_AUTOMOC ON)
   # As moc files are generated in the binary dir, tell CMake
@@ -75,7 +76,7 @@ ENDIF()
 SET (LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32/64)" )
 SET (LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}" CACHE STRING "Directory where lib will install")
 SET (INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "The directory the headers are installed in")
-SET (CMAKECONFIG_INSTALL_DIR "${LIB_INSTALL_DIR}/cmake/${CMAKE_PROJECT_NAME}" CACHE PATH "Directory where to install QJSONConfig.cmake")
+SET (CMAKECONFIG_INSTALL_DIR "${LIB_INSTALL_DIR}/cmake/${CMAKE_PROJECT_NAME}${QJSON_SUFFIX}" CACHE PATH "Directory where to install QJSONConfig.cmake")
 
 set(QJSON_LIB_MAJOR_VERSION "0")
 set(QJSON_LIB_MINOR_VERSION "8")
@@ -88,9 +89,9 @@ set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib" )
 # pkg-config
 IF (NOT WIN32)
   CONFIGURE_FILE (${CMAKE_CURRENT_SOURCE_DIR}/QJson.pc.in
-                  ${CMAKE_CURRENT_BINARY_DIR}/QJson.pc
+                  ${CMAKE_CURRENT_BINARY_DIR}/QJson${QJSON_SUFFIX}.pc
                   @ONLY)
-  INSTALL (FILES ${CMAKE_CURRENT_BINARY_DIR}/QJson.pc
+  INSTALL (FILES ${CMAKE_CURRENT_BINARY_DIR}/QJson${QJSON_SUFFIX}.pc
            DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
 ENDIF (NOT WIN32)
 
@@ -106,7 +107,7 @@ CONFIGURE_FILE(
   "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
   IMMEDIATE @ONLY)
 
-INSTALL(EXPORT qjson-export DESTINATION ${CMAKECONFIG_INSTALL_DIR} FILE QJSONTargets.cmake)
+INSTALL(EXPORT qjson-export DESTINATION ${CMAKECONFIG_INSTALL_DIR} FILE QJSON${QJSON_SUFFIX}Targets.cmake)
 
 # figure out the relative path from the installed Config.cmake file to the install prefix (which may be at
 # runtime different from the chosen CMAKE_INSTALL_PREFIX if under Windows the package was installed anywhere)
@@ -115,13 +116,13 @@ file(RELATIVE_PATH relInstallDir ${CMAKE_INSTALL_PREFIX}/${CMAKECONFIG_INSTALL_D
 
 # cmake-modules
 CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/QJSONConfig.cmake.in
-               ${CMAKE_CURRENT_BINARY_DIR}/QJSONConfig.cmake
+               ${CMAKE_CURRENT_BINARY_DIR}/QJSON${QJSON_SUFFIX}Config.cmake
                @ONLY)
 CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/QJSONConfigVersion.cmake.in
-               ${CMAKE_CURRENT_BINARY_DIR}/QJSONConfigVersion.cmake
+               ${CMAKE_CURRENT_BINARY_DIR}/QJSON${QJSON_SUFFIX}ConfigVersion.cmake
                @ONLY)
-INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/QJSONConfig.cmake
-              ${CMAKE_CURRENT_BINARY_DIR}/QJSONConfigVersion.cmake
+INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/QJSON${QJSON_SUFFIX}Config.cmake
+              ${CMAKE_CURRENT_BINARY_DIR}/QJSON${QJSON_SUFFIX}ConfigVersion.cmake
         DESTINATION "${CMAKECONFIG_INSTALL_DIR}")
 
 ADD_CUSTOM_TARGET(uninstall
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index df560a6..0ae7c40 100755
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -30,36 +30,36 @@ if(WIN32 AND QJSON_BUILD_TESTS AND BUILD_SHARED_LIBS)
   add_library(qjson_scanner STATIC json_scanner.cpp)
 endif()
 
-add_library (qjson ${qjson_SRCS} ${qjson_MOC_SRCS} ${qjson_HEADERS})
+add_library (qjson${QJSON_SUFFIX} ${qjson_SRCS} ${qjson_MOC_SRCS} ${qjson_HEADERS})
 IF (Qt5Core_FOUND)
-  target_link_libraries( qjson ${Qt5Core_LIBRARIES})
+  target_link_libraries( qjson${QJSON_SUFFIX} ${Qt5Core_LIBRARIES})
 ELSE()
-  target_link_libraries( qjson ${QT_LIBRARIES})
+  target_link_libraries( qjson${QJSON_SUFFIX} ${QT_LIBRARIES})
 ENDIF()
 
 if(NOT ANDROID)
-	set_target_properties(qjson PROPERTIES
+	set_target_properties(qjson${QJSON_SUFFIX} PROPERTIES
 	                      VERSION ${QJSON_LIB_MAJOR_VERSION}.${QJSON_LIB_MINOR_VERSION}.${QJSON_LIB_PATCH_VERSION}
                               SOVERSION ${QJSON_LIB_MAJOR_VERSION}
 	                      )
 endif()
 
 if(NOT BUILD_SHARED_LIBS)
-	set_target_properties( qjson PROPERTIES COMPILE_DEFINITIONS "QJSON_STATIC")
+	set_target_properties( qjson${QJSON_SUFFIX} PROPERTIES COMPILE_DEFINITIONS "QJSON_STATIC")
 endif()
 
-set_target_properties(qjson PROPERTIES
+set_target_properties(qjson${QJSON_SUFFIX} PROPERTIES
                       DEFINE_SYMBOL QJSON_MAKEDLL
                       PUBLIC_HEADER "${qjson_HEADERS}"
                       FRAMEWORK ${OSX_FRAMEWORK}
                       )
 
-INSTALL(TARGETS qjson EXPORT qjson-export
+INSTALL(TARGETS qjson${QJSON_SUFFIX} EXPORT qjson-export
    LIBRARY DESTINATION ${LIB_INSTALL_DIR}
    RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/bin
    ARCHIVE DESTINATION ${LIB_INSTALL_DIR}
    FRAMEWORK DESTINATION ${FRAMEWORK_INSTALL_DIR}
-   PUBLIC_HEADER DESTINATION ${INCLUDE_INSTALL_DIR}/qjson
+   PUBLIC_HEADER DESTINATION ${INCLUDE_INSTALL_DIR}/qjson${QJSON_SUFFIX}
 )
 
 if(MSVC)
diff --git a/tests/benchmarks/CMakeLists.txt b/tests/benchmarks/CMakeLists.txt
index 824b56e..9132309 100644
--- a/tests/benchmarks/CMakeLists.txt
+++ b/tests/benchmarks/CMakeLists.txt
@@ -27,7 +27,7 @@ FOREACH(test ${UNIT_TESTS})
     ${test}
     ${QT_LIBRARIES}
     ${TEST_LIBRARIES}
-    qjson
+    qjson${QJSON_SUFFIX}
   )
   if (QJSON_TEST_OUTPUT STREQUAL "xml")
     # produce XML output
diff --git a/tests/cmdline_tester/CMakeLists.txt b/tests/cmdline_tester/CMakeLists.txt
index c7cf4cd..12c72cf 100644
--- a/tests/cmdline_tester/CMakeLists.txt
+++ b/tests/cmdline_tester/CMakeLists.txt
@@ -31,5 +31,5 @@ TARGET_LINK_LIBRARIES(
   cmdline_tester
   ${QT_LIBRARIES}
   ${Qt5Widgets_LIBRARIES}
-  qjson
+  qjson${QJSON_SUFFIX}
 )
diff --git a/tests/parser/CMakeLists.txt b/tests/parser/CMakeLists.txt
index bd86cee..b280a38 100644
--- a/tests/parser/CMakeLists.txt
+++ b/tests/parser/CMakeLists.txt
@@ -35,7 +35,7 @@ FOREACH(test ${UNIT_TESTS})
     ${test}
     ${QT_LIBRARIES}
     ${TEST_LIBRARIES}
-    qjson
+    qjson${QJSON_SUFFIX}
   )
   if (QJSON_TEST_OUTPUT STREQUAL "xml")
     # produce XML output
diff --git a/tests/qobjecthelper/CMakeLists.txt b/tests/qobjecthelper/CMakeLists.txt
index d1636e6..e474ffd 100644
--- a/tests/qobjecthelper/CMakeLists.txt
+++ b/tests/qobjecthelper/CMakeLists.txt
@@ -43,7 +43,7 @@ FOREACH(test ${UNIT_TESTS})
     ${test}
     ${QT_LIBRARIES}
     ${TEST_LIBRARIES}
-    qjson
+    qjson${QJSON_SUFFIX}
     qjson_test_support
   )
   if (QJSON_TEST_OUTPUT STREQUAL "xml")
diff --git a/tests/scanner/CMakeLists.txt b/tests/scanner/CMakeLists.txt
index 48c1c18..e263577 100644
--- a/tests/scanner/CMakeLists.txt
+++ b/tests/scanner/CMakeLists.txt
@@ -40,7 +40,7 @@ FOREACH(test ${UNIT_TESTS})
     ${test}
     ${QT_LIBRARIES}
     ${TEST_LIBRARIES}
-    qjson
+    qjson${QJSON_SUFFIX}
     ${QJSON_SCANNER}
   )
   if (QJSON_TEST_OUTPUT STREQUAL "xml")
diff --git a/tests/serializer/CMakeLists.txt b/tests/serializer/CMakeLists.txt
index c3411bc..7222fc7 100644
--- a/tests/serializer/CMakeLists.txt
+++ b/tests/serializer/CMakeLists.txt
@@ -35,7 +35,7 @@ FOREACH(test ${UNIT_TESTS})
     ${test}
     ${QT_LIBRARIES}
     ${TEST_LIBRARIES}
-    qjson
+    qjson${QJSON_SUFFIX}
   )
   if (QJSON_TEST_OUTPUT STREQUAL "xml")
     # produce XML output
-- 
2.5.0