mirror of
https://github.com/VectorCamp/vectorscan.git
synced 2025-06-28 16:41:01 +03:00
cmake: improve build paths for nested builds
If Hyperscan is built as a subproject of another cmake project, it helps to refer to PROJECT_xx_DIR instead of CMAKE_xx_DIR, etc.
This commit is contained in:
parent
b9d3b73ab8
commit
f65170da5b
@ -8,7 +8,7 @@ set (HS_VERSION ${HS_MAJOR_VERSION}.${HS_MINOR_VERSION}.${HS_PATCH_VERSION})
|
||||
|
||||
string (TIMESTAMP BUILD_DATE "%Y-%m-%d")
|
||||
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
|
||||
set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
|
||||
include(CheckCCompilerFlag)
|
||||
include(CheckCXXCompilerFlag)
|
||||
INCLUDE (CheckFunctionExists)
|
||||
@ -56,8 +56,9 @@ if(CMAKE_GENERATOR STREQUAL Xcode)
|
||||
set(XCODE TRUE)
|
||||
endif()
|
||||
|
||||
include_directories(src .)
|
||||
include_directories(${CMAKE_BINARY_DIR})
|
||||
set(CMAKE_INCLUDE_CURRENT_DIR 1)
|
||||
include_directories(${PROJECT_SOURCE_DIR}/src)
|
||||
include_directories(${PROJECT_BINARY_DIR})
|
||||
include_directories(SYSTEM include)
|
||||
|
||||
set(BOOST_USE_STATIC_LIBS OFF)
|
||||
@ -71,7 +72,7 @@ find_package(Boost ${BOOST_MINVERSION})
|
||||
if(NOT Boost_FOUND)
|
||||
# we might have boost in tree, so provide a hint and try again
|
||||
message(STATUS "trying include dir for boost")
|
||||
set(BOOST_INCLUDEDIR "${CMAKE_SOURCE_DIR}/include")
|
||||
set(BOOST_INCLUDEDIR "${PROJECT_SOURCE_DIR}/include")
|
||||
find_package(Boost ${BOOST_MINVERSION})
|
||||
if(NOT Boost_FOUND)
|
||||
message(FATAL_ERROR "Boost ${BOOST_MINVERSION} or later not found. Either install system pacakges if available, extract Boost headers to ${CMAKE_SOURCE_DIR}/include, or set the CMake BOOST_ROOT variable.")
|
||||
@ -219,6 +220,15 @@ CHECK_FUNCTION_EXISTS(_aligned_malloc HAVE__ALIGNED_MALLOC)
|
||||
CHECK_C_COMPILER_FLAG(-fvisibility=hidden HAS_C_HIDDEN)
|
||||
CHECK_CXX_COMPILER_FLAG(-fvisibility=hidden HAS_CXX_HIDDEN)
|
||||
|
||||
if (RELEASE_BUILD)
|
||||
if (HAS_C_HIDDEN)
|
||||
set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -fvisibility=hidden")
|
||||
endif()
|
||||
if (HAS_CXX_HIDDEN)
|
||||
set(EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} -fvisibility=hidden")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# testing a builtin takes a little more work
|
||||
CHECK_C_SOURCE_COMPILES("void *aa_test(void *x) { return __builtin_assume_aligned(x, 16);}\nint main(void) { return 0; }" HAVE_CC_BUILTIN_ASSUME_ALIGNED)
|
||||
CHECK_CXX_SOURCE_COMPILES("void *aa_test(void *x) { return __builtin_assume_aligned(x, 16);}\nint main(void) { return 0; }" HAVE_CXX_BUILTIN_ASSUME_ALIGNED)
|
||||
@ -327,8 +337,8 @@ if (EXISTS ${CMAKE_SOURCE_DIR}/tools)
|
||||
endif()
|
||||
|
||||
# do substitutions
|
||||
configure_file(${CMAKE_MODULE_PATH}/config.h.in ${CMAKE_BINARY_DIR}/config.h)
|
||||
configure_file(src/hs_version.h.in hs_version.h)
|
||||
configure_file(${CMAKE_MODULE_PATH}/config.h.in ${PROJECT_BINARY_DIR}/config.h)
|
||||
configure_file(src/hs_version.h.in ${PROJECT_BINARY_DIR}/hs_version.h)
|
||||
|
||||
if (PKG_CONFIG_FOUND)
|
||||
# we really only need to do this if we have pkg-config
|
||||
@ -345,7 +355,7 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CXX_FLAGS}")
|
||||
# include the autogen targets
|
||||
add_subdirectory(src/fdr)
|
||||
|
||||
include_directories(${CMAKE_BINARY_DIR}/src/fdr)
|
||||
include_directories(${PROJECT_BINARY_DIR}/src/fdr)
|
||||
|
||||
if(NOT WIN32)
|
||||
set(RAGEL_C_FLAGS "-Wno-unused")
|
||||
|
@ -27,11 +27,11 @@ fdr_autogen(teddy_runtime teddy_autogen.c)
|
||||
fdr_autogen(teddy_compiler teddy_autogen_compiler.cpp)
|
||||
|
||||
set(fdr_GENERATED_SRC
|
||||
${CMAKE_BINARY_DIR}/src/fdr/fdr_autogen.c
|
||||
${CMAKE_BINARY_DIR}/src/fdr/fdr_autogen_compiler.cpp
|
||||
${CMAKE_BINARY_DIR}/src/fdr/teddy_autogen.c
|
||||
${CMAKE_BINARY_DIR}/src/fdr/teddy_autogen_compiler.cpp
|
||||
PARENT_SCOPE)
|
||||
${PROJECT_BINARY_DIR}/src/fdr/fdr_autogen.c
|
||||
${PROJECT_BINARY_DIR}/src/fdr/fdr_autogen_compiler.cpp
|
||||
${PROJECT_BINARY_DIR}/src/fdr/teddy_autogen.c
|
||||
${PROJECT_BINARY_DIR}/src/fdr/teddy_autogen_compiler.cpp
|
||||
PARENT_SCOPE)
|
||||
|
||||
set_source_files_properties(${fdr_GENERATED_SRC} PROPERTIES GENERATED TRUE)
|
||||
include_directories(${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
@ -7,7 +7,8 @@ if(NOT XCODE)
|
||||
else()
|
||||
set(CMAKE_CXX_FLAGS "-isystem ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CXX_FLAGS}")
|
||||
endif()
|
||||
include_directories(${CMAKE_SOURCE_DIR}/util)
|
||||
|
||||
include_directories(${PROJECT_SOURCE_DIR})
|
||||
|
||||
# remove some warnings
|
||||
# cmake's scope means these only apply here
|
||||
@ -26,7 +27,7 @@ endif()
|
||||
|
||||
add_library(gtest ${gtest_SOURCES})
|
||||
|
||||
add_definitions(-DGTEST_HAS_PTHREAD=0 -DSRCDIR=${CMAKE_SOURCE_DIR})
|
||||
add_definitions(-DGTEST_HAS_PTHREAD=0 -DSRCDIR=${PROJECT_SOURCE_DIR})
|
||||
|
||||
if (NOT RELEASE_BUILD)
|
||||
set(unit_internal_SOURCES
|
||||
|
Loading…
x
Reference in New Issue
Block a user