chimera: add pkgconfig install files

This commit is contained in:
Wang, Xiang W 2018-07-09 08:26:22 -04:00
parent 1ad2f8760c
commit c8ec0d0ec2
4 changed files with 50 additions and 8 deletions

View 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()

View 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()

12
chimera/libch.pc.in Normal file
View File

@ -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

View 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(