]> git.ipfire.org Git - thirdparty/vectorscan.git/commitdiff
chimera: add pkgconfig install files
authorWang, Xiang W <xiang.w.wang@intel.com>
Mon, 9 Jul 2018 12:26:22 +0000 (08:26 -0400)
committerWang, Xiang W <xiang.w.wang@intel.com>
Mon, 9 Jul 2018 16:10:12 +0000 (12:10 -0400)
CMakeLists.txt
chimera/CMakeLists.txt
chimera/libch.pc.in [new file with mode: 0644]
tools/hscollider/CMakeLists.txt

index 9a452561aad0c3139cfdca3d48bffafd7a6787a3..6ed73e16ec79946622c9de5bdae9c5a628c201a5 100644 (file)
@@ -460,7 +460,7 @@ if (NOT CORRECT_PCRE_VERSION)
 endif()
 
 # we need static libs for Chimera - too much deep magic for shared libs
-if (CORRECT_PCRE_VERSION AND BUILD_STATIC_LIBS)
+if (CORRECT_PCRE_VERSION AND PCRE_BUILD_SOURCE AND BUILD_STATIC_LIBS)
     set(BUILD_CHIMERA TRUE)
 endif()
 
@@ -512,7 +512,7 @@ if (NOT CORRECT_PCRE_VERSION)
 endif()
 
 # we need static libs for Chimera - too much deep magic for shared libs
-if (CORRECT_PCRE_VERSION AND BUILD_STATIC_LIBS)
+if (CORRECT_PCRE_VERSION AND PCRE_BUILD_SOURCE AND BUILD_STATIC_LIBS)
     set(BUILD_CHIMERA TRUE)
 endif()
 
index f2a4203a01f2514d8acdbdd90a8c8ad50fc5d2f7..1cd66a3f5193e4d19547dce1d10bfe06b6a9ba90 100644 (file)
@@ -30,3 +30,20 @@ SET(chimera_SRCS
 add_library(chimera STATIC ${chimera_SRCS})
 add_dependencies(chimera hs pcre)
 target_link_libraries(chimera hs pcre)
+
+install(TARGETS chimera DESTINATION ${CMAKE_INSTALL_LIBDIR})
+
+if (NOT WIN32)
+    # expand out library names for pkgconfig static link info
+    foreach (LIB ${CMAKE_CXX_IMPLICIT_LINK_LIBRARIES})
+        # this is fragile, but protects us from toolchain specific files
+        if (NOT EXISTS ${LIB})
+            set(PRIVATE_LIBS "${PRIVATE_LIBS} -l${LIB}")
+        endif()
+    endforeach()
+    set(PRIVATE_LIBS "${PRIVATE_LIBS} -L${LIBDIR} -lpcre")
+
+    configure_file(libch.pc.in libch.pc @ONLY) # only replace @ quoted vars
+    install(FILES ${CMAKE_BINARY_DIR}/chimera/libch.pc
+        DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
+endif()
diff --git a/chimera/libch.pc.in b/chimera/libch.pc.in
new file mode 100644 (file)
index 0000000..7f26600
--- /dev/null
@@ -0,0 +1,12 @@
+prefix=@CMAKE_INSTALL_PREFIX@
+exec_prefix=@CMAKE_INSTALL_PREFIX@
+libdir=@CMAKE_INSTALL_PREFIX@/lib
+includedir=@CMAKE_INSTALL_PREFIX@/include
+
+Name: libch
+Description: Intel(R) Chimera Library
+Version: @HS_VERSION@
+Requires.private: libhs
+Libs: -L${libdir} -lchimera
+Libs.private: @PRIVATE_LIBS@
+Cflags: -I${includedir}/hs
index 0a6878a7245a1946a0a64e6511ccadebfeb82fe4..4684964fbf38149ac0ac8458c53fbba801b2e936 100644 (file)
@@ -23,7 +23,9 @@ set_source_files_properties(
 
 ragelmaker(ColliderCorporaParser.rl)
 
-add_definitions(-DHS_HYBRID)
+if (BUILD_CHIMERA)
+    add_definitions(-DHS_HYBRID)
+endif()
 
 # only set these after all tests are done
 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_C_FLAGS}")
@@ -65,9 +67,15 @@ add_dependencies(hscollider ragel_ColliderCorporaParser)
 add_dependencies(hscollider pcre)
 
 if(NOT WIN32)
-    target_link_libraries(hscollider hs chimera ${PCRE_LDFLAGS} databaseutil
-        expressionutil corpusomatic crosscompileutil pthread
-    "${BACKTRACE_LDFLAGS}")
+    if (BUILD_CHIMERA)
+        target_link_libraries(hscollider hs chimera ${PCRE_LDFLAGS} databaseutil
+            expressionutil corpusomatic crosscompileutil pthread
+        "${BACKTRACE_LDFLAGS}")
+    else()
+        target_link_libraries(hscollider hs ${PCRE_LDFLAGS} databaseutil
+            expressionutil corpusomatic crosscompileutil pthread
+        "${BACKTRACE_LDFLAGS}")
+    endif()
 
 if(HAVE_BACKTRACE)
     set_source_files_properties(hscollider_SOURCES COMPILE_FLAGS
@@ -75,8 +83,13 @@ if(HAVE_BACKTRACE)
 endif()
 else() # WIN32
     set_target_properties(hscollider PROPERTIES LINK_FLAGS "/STACK:8388608,8388608")
-    target_link_libraries(hscollider hs chimera pcre databaseutil
-        expressionutil corpusomatic crosscompileutil)
+    if (BUILD_CHIMERA)
+        target_link_libraries(hscollider hs chimera pcre databaseutil
+            expressionutil corpusomatic crosscompileutil)
+    else()
+        target_link_libraries(hscollider hs pcre databaseutil
+            expressionutil corpusomatic crosscompileutil)
+    endif()
 endif()
 
 add_custom_target(