]> OCCT Git - occt-copy.git/commitdiff
Create imported target for each 3rd party product
authorapn <apn@opencascade.com>
Fri, 8 Jul 2016 13:26:08 +0000 (16:26 +0300)
committerapn <apn@opencascade.com>
Mon, 1 Oct 2018 08:14:40 +0000 (11:14 +0300)
CMakeLists.txt
adm/templates/OpenCASCADE3rdparty.cmake.in

index 083f30101236e23ac2f72ac34146cd4845afac07..b8a9b3e2e54b23bfa236d31e854ebb3ba9ffcad6 100644 (file)
@@ -1096,10 +1096,12 @@ foreach (OCCT_CONFIGURATION ${CMAKE_CONFIGURATION_TYPES})
   foreach (ALL_VAR ${ALL_VARS})
     string (REGEX MATCH "^3RDPARTY_([^_]*)_DLL$" DLL_FOUND ${ALL_VAR})
     if (DLL_FOUND)
+      set (SET_OpenCASCADE_3RDPARTY "${SET_OpenCASCADE_3RDPARTY}CREATE_IMPORTED_TARGET (${CMAKE_MATCH_1} ${OCCT_CONFIGURATION_UPPER} \"${3RDPARTY_${CMAKE_MATCH_1}_DLL}\" TRUE)\n")
       set (SET_OpenCASCADE_3RDPARTY "${SET_OpenCASCADE_3RDPARTY}set (3RDPARTY_${CMAKE_MATCH_1}_DLL_${OCCT_CONFIGURATION_UPPER} \"${3RDPARTY_${CMAKE_MATCH_1}_DLL}\")\n")
     endif()
     string (REGEX MATCH "^3RDPARTY_([^_]*)_LIBRARY$" LIB_FOUND ${ALL_VAR})
     if (LIB_FOUND)
+      set (SET_OpenCASCADE_3RDPARTY "${SET_OpenCASCADE_3RDPARTY}CREATE_IMPORTED_TARGET (${CMAKE_MATCH_1} ${OCCT_CONFIGURATION_UPPER} \"${3RDPARTY_${CMAKE_MATCH_1}_LIBRARY}\" FALSE)\n")
       set (SET_OpenCASCADE_3RDPARTY "${SET_OpenCASCADE_3RDPARTY}set (3RDPARTY_${CMAKE_MATCH_1}_LIBRARY_${OCCT_CONFIGURATION_UPPER} \"${3RDPARTY_${CMAKE_MATCH_1}_LIBRARY}\")\n")
     endif()
     string (REGEX MATCH "^3RDPARTY_([^_]*_INCLUDE_DIR$)" INC_FOUND ${ALL_VAR})
@@ -1110,13 +1112,13 @@ foreach (OCCT_CONFIGURATION ${CMAKE_CONFIGURATION_TYPES})
     if (INC_FOUND2)
       set (SET_OpenCASCADE_3RDPARTY "${SET_OpenCASCADE_3RDPARTY}set (3RDPARTY_${CMAKE_MATCH_1}_${OCCT_CONFIGURATION_UPPER} \"${3RDPARTY_${CMAKE_MATCH_1}}\")\n")
     endif()
-    string (REGEX MATCH "^3RDPARTY_VTK_DLL_DIR$" VTK_DLLDIR_FOUND ${ALL_VAR})
-    if (VTK_DLLDIR_FOUND)
-      set (SET_OpenCASCADE_3RDPARTY "${SET_OpenCASCADE_3RDPARTY}set (3RDPARTY_VTK_DLL_DIR_${OCCT_CONFIGURATION_UPPER} \"${3RDPARTY_VTK_DLL_DIR}\")\n")
+    string (REGEX MATCH "^3RDPARTY_([^_]*_DLL_DIR$)" DLLDIR_FOUND ${ALL_VAR})
+    if (DLLDIR_FOUND)
+      set (SET_OpenCASCADE_3RDPARTY "${SET_OpenCASCADE_3RDPARTY}set (3RDPARTY_${CMAKE_MATCH_1}_${OCCT_CONFIGURATION_UPPER} \"${3RDPARTY_${CMAKE_MATCH_1}}\")\n")
     endif()
-    string (REGEX MATCH "^3RDPARTY_VTK_LIBRARY_DIR$" VTK_LIBDIR_FOUND ${ALL_VAR})
-    if (${VTK_LIBDIR_FOUND})
-      set (SET_OpenCASCADE_3RDPARTY "${SET_OpenCASCADE_3RDPARTY}set (3RDPARTY_VTK_LIBRARY_DIR_${OCCT_CONFIGURATION_UPPER} \"${3RDPARTY_VTK_LIBRARY_DIR}\")\n")
+    string (REGEX MATCH "^3RDPARTY_([^_]*_LIBRARY_DIR$)" LIBDIR_FOUND ${ALL_VAR})
+    if (LIBDIR_FOUND)
+      set (SET_OpenCASCADE_3RDPARTY "${SET_OpenCASCADE_3RDPARTY}set (3RDPARTY_${CMAKE_MATCH_1}_${OCCT_CONFIGURATION_UPPER} \"${3RDPARTY_${CMAKE_MATCH_1}}\")\n")
     endif()
   endforeach()
   configure_file("${CMAKE_SOURCE_DIR}/adm/templates/OpenCASCADECompileDefinitionsAndFlags.cmake.in" "OpenCASCADECompileDefinitionsAndFlags-${OCCT_CONFIGURATION_LOWER}.cmake" @ONLY)
index 809f095a4772592b7c28fce6daee7029e6aca674..f0a854fccc7076f535695f0d11d209c1879218aa 100644 (file)
@@ -6,4 +6,34 @@
 # This file is configured by OpenCASCADE.
 #
 
+macro (CREATE_IMPORTED_TARGET TARGET_NAME CONFIGURATION TARGET_LIBRARY_FILE_PATH IS_DYNAMIC_LIBRARY)
+  # Create imported target
+  if (NOT TARGET ${TARGET_NAME})
+    add_library(${TARGET_NAME} SHARED IMPORTED)
+  endif()
+  
+  # Append new configuration to the target
+  get_property (TARGET_IMPORTED_CONFIGURATIONS TARGET ${TARGET_NAME} PROPERTY IMPORTED_CONFIGURATIONS)
+  list (FIND TARGET_IMPORTED_CONFIGURATIONS ${CONFIGURATION} IS_ALREADY_ADDED)
+  if (${IS_ALREADY_ADDED} EQUAL -1)
+    set_property(TARGET ${TARGET_NAME} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${CONFIGURATION})
+  endif()
+
+  if (IS_DYNAMIC_LIBRARY)
+    # Add *.dll(Windows)/*.so(Linux)/*.dylib(MacOS) library to the target
+    if (NOT "${TARGET_LIBRARY_FILE_PATH}" STREQUAL "")
+      set_target_properties(${TARGET_NAME} PROPERTIES IMPORTED_LOCATION_${CONFIGURATION} "${TARGET_LIBRARY_FILE_PATH}")
+      list(APPEND _IMPORT_CHECK_FILES_FOR_${TARGET_NAME} "${TARGET_LIBRARY_FILE_PATH}" )
+    endif()
+  else()
+    # Add library *.lib to the target for Windows platform
+    if (WIN32)
+      if (NOT "${TARGET_LIBRARY_FILE_PATH}" STREQUAL "")
+        set_target_properties(${TARGET_NAME} PROPERTIES IMPORTED_IMPLIB_${CONFIGURATION} "${TARGET_LIBRARY_FILE_PATH}")
+        list(APPEND _IMPORT_CHECK_FILES_FOR_${TARGET_NAME} "${TARGET_LIBRARY_FILE_PATH}")
+      endif()
+    endif()
+  endif()
+endmacro()
+
 @SET_OpenCASCADE_3RDPARTY@
\ No newline at end of file