Преглед на файлове

cJSON: Option to disable exporting targets

This can be disabled when the exporting of the targets causes problems.
Max Bruckner преди 8 години
родител
ревизия
c213f2eb58
променени са 2 файла, в които са добавени 17 реда и са изтрити 8 реда
  1. 9 4
      CMakeLists.txt
  2. 8 4
      cJSONConfig.cmake.in

+ 9 - 4
CMakeLists.txt

@@ -22,6 +22,7 @@ set(version "${PROJECT_VERSION}")
 set(includedir "${CMAKE_INSTALL_INCLUDEDIR}")
 set(includedir "${CMAKE_INSTALL_INCLUDEDIR}")
 
 
 option(BUILD_SHARED_LIBS "Build shared libraries" ON)
 option(BUILD_SHARED_LIBS "Build shared libraries" ON)
+option(ENABLE_TARGET_EXPORT "Enable exporting of CMake targets. Disable when it causes problems!" ON)
 
 
 #cJSON
 #cJSON
 set(CJSON_LIB cjson)
 set(CJSON_LIB cjson)
@@ -40,8 +41,10 @@ configure_file("${CMAKE_CURRENT_SOURCE_DIR}/libcjson.pc.in"
 install(FILES cJSON.h DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/cjson")
 install(FILES cJSON.h DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/cjson")
 install (FILES "${CMAKE_CURRENT_BINARY_DIR}/libcjson.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
 install (FILES "${CMAKE_CURRENT_BINARY_DIR}/libcjson.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
 install(TARGETS "${CJSON_LIB}" DESTINATION "${CMAKE_INSTALL_LIBDIR}" EXPORT "${CJSON_LIB}")
 install(TARGETS "${CJSON_LIB}" DESTINATION "${CMAKE_INSTALL_LIBDIR}" EXPORT "${CJSON_LIB}")
-# export library information for CMake projects
-install(EXPORT "${CJSON_LIB}" DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/cJSON")
+if(ENABLE_TARGET_EXPORT)
+  # export library information for CMake projects
+  install(EXPORT "${CJSON_LIB}" DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/cJSON")
+endif()
 
 
 set_target_properties("${CJSON_LIB}"
 set_target_properties("${CJSON_LIB}"
     PROPERTIES
     PROPERTIES
@@ -65,8 +68,10 @@ if(ENABLE_CJSON_UTILS)
     install(TARGETS "${CJSON_UTILS_LIB}" DESTINATION "${CMAKE_INSTALL_LIBDIR}" EXPORT "${CJSON_UTILS_LIB}")
     install(TARGETS "${CJSON_UTILS_LIB}" DESTINATION "${CMAKE_INSTALL_LIBDIR}" EXPORT "${CJSON_UTILS_LIB}")
     install(FILES cJSON_Utils.h DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/cjson")
     install(FILES cJSON_Utils.h DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/cjson")
     install (FILES "${CMAKE_CURRENT_BINARY_DIR}/libcjson_utils.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
     install (FILES "${CMAKE_CURRENT_BINARY_DIR}/libcjson_utils.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
-    # export library information for CMake projects
-    install(EXPORT "${CJSON_UTILS_LIB}" DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/cJSON")
+    if(ENABLE_TARGET_EXPORT)
+      # export library information for CMake projects
+      install(EXPORT "${CJSON_UTILS_LIB}" DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/cJSON")
+    endif()
 
 
     set_target_properties("${CJSON_UTILS_LIB}"
     set_target_properties("${CJSON_UTILS_LIB}"
         PROPERTIES
         PROPERTIES

+ 8 - 4
cJSONConfig.cmake.in

@@ -9,16 +9,20 @@ get_filename_component(_dir "${CMAKE_CURRENT_LIST_FILE}" PATH)
 
 
 # The cJSON library
 # The cJSON library
 set(CJSON_LIBRARY "@CJSON_LIB@")
 set(CJSON_LIBRARY "@CJSON_LIB@")
-# Include the target
-include("${_dir}/cjson.cmake")
+if(@ENABLE_TARGET_EXPORT@)
+  # Include the target
+  include("${_dir}/cjson.cmake")
+endif()
 
 
 if(CJSON_UTILS_FOUND)
 if(CJSON_UTILS_FOUND)
   # The cJSON utils library
   # The cJSON utils library
   set(CJSON_UTILS_LIBRARY @CJSON_UTILS_LIB@)
   set(CJSON_UTILS_LIBRARY @CJSON_UTILS_LIB@)
   # All cJSON libraries
   # All cJSON libraries
   set(CJSON_LIBRARIES "@CJSON_UTILS_LIB@" "@CJSON_LIB@")
   set(CJSON_LIBRARIES "@CJSON_UTILS_LIB@" "@CJSON_LIB@")
-  # Include the target
-  include("${_dir}/cjson_utils.cmake")
+  if(@ENABLE_TARGET_EXPORT@)
+    # Include the target
+    include("${_dir}/cjson_utils.cmake")
+  endif()
 else()
 else()
   # All cJSON libraries
   # All cJSON libraries
   set(CJSON_LIBRARIES "@CJSON_LIB@")
   set(CJSON_LIBRARIES "@CJSON_LIB@")