@@ -3,59 +3,52 @@ project("Regular Expressions" LANGUAGES CXX)
33
44set_property (GLOBAL PROPERTYUSE_FOLDERS ON )
55
6- find_package (Boost REQUIRED COMPONENTS headersregex )
7-
8- include_directories ("$ENV{SUITE_BUILD} /include" )
9-
10- set (LibRE2_LIBRARY"$ENV{SUITE_BUILD} /lib/libre2.a" )
11- set (LibHYPERSCAN_LIBRARY"$ENV{SUITE_BUILD} /lib/libhs.dylib" )
12- set (LibPCRE_LIBRARY"$ENV{SUITE_BUILD} /lib/libpcre.dylib" )
13- set (LibPCRE2_LIBRARY"$ENV{SUITE_BUILD} /lib/libpcre2-8.dylib" )
14-
15- add_executable (std std.cpp)
16- add_executable (boost boost.cpp)
17- add_executable (pcre pcre.cpp)
18- add_executable (re2 re2.cpp)
19- add_executable (hyperscan hyperscan.cpp)
20- add_executable (pcre2 pcre2.cpp)
21- add_executable (pcre_jit pcre_jit.cpp)
22- add_executable (pcre2_jit pcre2_jit.cpp)
23-
24- target_compile_features (stdPUBLIC cxx_std_17)
25- target_compile_features (boostPUBLIC cxx_std_17)
26- target_compile_features (re2PUBLIC cxx_std_17)
27- target_compile_features (hyperscanPUBLIC cxx_std_17)
28- target_compile_features (pcrePUBLIC cxx_std_17)
29- target_compile_features (pcre2PUBLIC cxx_std_17)
30- target_compile_features (pcre_jitPUBLIC cxx_std_17)
31- target_compile_features (pcre2_jitPUBLIC cxx_std_17)
32-
33- target_compile_options (stdPRIVATE -Wall -Wextra -Wmost -pedantic -Wconversion -Wfloat-equal -Wold-style-cast)
34- target_compile_options (boostPRIVATE -Wall -Wextra -Wmost -pedantic -Wconversion -Wfloat-equal -Wold-style-cast)
35- target_compile_options (re2PRIVATE -Wall -Wextra -Wmost -pedantic -Wconversion -Wfloat-equal -Wold-style-cast)
36- target_compile_options (hyperscanPRIVATE -Wall -Wextra -Wmost -pedantic -Wconversion -Wfloat-equal -Wold-style-cast)
37- target_compile_options (pcrePRIVATE -Wall -Wextra -Wmost -pedantic -Wconversion -Wfloat-equal -Wold-style-cast)
38- target_compile_options (pcre2PRIVATE -Wall -Wextra -Wmost -pedantic -Wconversion -Wfloat-equal )
39- target_compile_options (pcre_jitPRIVATE -Wall -Wextra -Wmost -pedantic -Wconversion -Wfloat-equal -Wold-style-cast)
40- target_compile_options (pcre2_jitPRIVATE -Wall -Wextra -Wmost -pedantic -Wconversion -Wfloat-equal )
41-
42- if (CMAKE_BUILD_TYPE STREQUAL "Release" )
43- target_compile_options (boostPRIVATE "-fvisibility=hidden" )
44- endif ()
45-
46- target_link_libraries (boostPRIVATE ${Boost_LIBRARIES} Boost::regex )
47- target_link_libraries (re2PRIVATE "${LibRE2_LIBRARY} " )
48- target_link_libraries (hyperscanPRIVATE "${LibHYPERSCAN_LIBRARY} " )
49- target_link_libraries (pcrePRIVATE "${LibPCRE_LIBRARY} " )
50- target_link_libraries (pcre2PRIVATE "${LibPCRE2_LIBRARY} " )
51- target_link_libraries (pcre_jitPRIVATE "${LibPCRE_LIBRARY} " )
52- target_link_libraries (pcre2_jitPRIVATE "${LibPCRE2_LIBRARY} " )
53-
54- set_target_properties (std PROPERTIES CXX_EXTENSIONSOFF )
55- set_target_properties (boost PROPERTIES CXX_EXTENSIONSOFF )
56- set_target_properties (re2 PROPERTIES CXX_EXTENSIONSOFF )
57- set_target_properties (hyperscan PROPERTIES CXX_EXTENSIONSOFF )
58- set_target_properties (pcre PROPERTIES CXX_EXTENSIONSOFF )
59- set_target_properties (pcre2 PROPERTIES CXX_EXTENSIONSOFF )
60- set_target_properties (pcre_jit PROPERTIES CXX_EXTENSIONSOFF )
61- set_target_properties (pcre2_jit PROPERTIES CXX_EXTENSIONSOFF )
6+ find_package (Boost REQUIRED COMPONENTSregex )
7+
8+ find_library (RE2_LIBRARY re2)
9+ find_library (Hyperscan_LIBRARY hs)
10+ find_library (PCRE_LIBRARY pcre)
11+ find_library (PCRE2_LIBRARY pcre2-8)
12+
13+ find_path (RE2_INCLUDE_DIRS re2/re2.h)
14+ find_path (Hyperscan_INCLUDE_DIRS hs/hs.h)
15+ find_path (PCRE_INCLUDE_DIRS pcre.h)
16+ find_path (PCRE2_INCLUDE_DIRS pcre2.h)
17+
18+ set (ALL_TARGETS
19+ std
20+ boost
21+ pcre
22+ re2
23+ hyperscan
24+ pcre2
25+ pcre_jit
26+ pcre2_jit
27+ )
28+
29+ foreach (target ${ALL_TARGETS} )
30+ add_executable (${target} ${target} .cpp)
31+ target_compile_features (${target} PUBLIC cxx_std_17)
32+ target_compile_options (${target} PRIVATE -Wall -Wextra -Wmost -pedantic -Wconversion -Wfloat-equal -Wold-style-cast -fcolor-diagnostics)
33+ set_target_properties (${target} PROPERTIES CXX_EXTENSIONSOFF )
34+ endforeach ()
35+
36+ target_compile_options (boostPRIVATE -Wno-conversion -Wno-old-style-cast)
37+ target_compile_options (pcre2PRIVATE -Wno-old-style-cast)
38+ target_compile_options (pcre2_jitPRIVATE -Wno-old-style-cast)
39+
40+ target_include_directories (boostPRIVATE ${Boost_INCLUDE_DIRS} )
41+ target_include_directories (re2PRIVATE ${RE2_INCLUDE_DIRS} )
42+ target_include_directories (hyperscanPRIVATE ${Hyperscan_INCLUDE_DIRS} )
43+ target_include_directories (pcrePRIVATE ${PCRE_INCLUDE_DIRS} )
44+ target_include_directories (pcre2PRIVATE ${PCRE2_INCLUDE_DIRS} )
45+ target_include_directories (pcre_jitPRIVATE ${PCRE_INCLUDE_DIRS} )
46+ target_include_directories (pcre2_jitPRIVATE ${PCRE2_INCLUDE_DIRS} )
47+
48+ target_link_libraries (boostPRIVATE ${Boost_LIBRARIES} )
49+ target_link_libraries (re2PRIVATE "${RE2_LIBRARY} " )
50+ target_link_libraries (hyperscanPRIVATE "${Hyperscan_LIBRARY} " )
51+ target_link_libraries (pcrePRIVATE "${PCRE_LIBRARY} " )
52+ target_link_libraries (pcre2PRIVATE "${PCRE2_LIBRARY} " )
53+ target_link_libraries (pcre_jitPRIVATE "${PCRE_LIBRARY} " )
54+ target_link_libraries (pcre2_jitPRIVATE "${PCRE2_LIBRARY} " )