source: icGREP/icgrep-devel/icgrep/CMakeLists.txt @ 6141

Last change on this file since 6141 was 6137, checked in by xwa163, 12 months ago
  1. LZ4 ScanMatch? pipeline
  2. Refactor LZ4 Generator
  3. Adjust some naming
File size: 18.7 KB
Line 
1cmake_minimum_required (VERSION 2.8)
2
3project (icgrep)
4
5enable_testing()
6# The version number.
7set (icgrep_VERSION_MAJOR 1)
8set (icgrep_VERSION_MINOR 6)
9
10option(ENABLE_MULTIPLEXING "Compiling the Multiplexing Module")
11option(DISABLE_DUAL_ABI "Disable GCC Dual ABI support" OFF)
12option(CARRYPACK_MANAGER "Use CarryPack Manager to reduce space required for carries. For testing only." OFF)
13option(USE_ADDRESS_SANITIZER "Enables use of address sanitizer in debug mode if available" OFF)
14find_package(LLVM REQUIRED CONFIG)
15
16message(STATUS "Found LLVM ${LLVM_PACKAGE_VERSION} in: ${LLVM_DIR}")
17
18set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};${CMAKE_CURRENT_SOURCE_DIR}/cmake") # ensure custom FindXYZ.cmake files are found
19
20set (Parabix_REVISION "svn")
21include(VersionFromVCS)
22add_version_info_from_vcs(Parabix_REVISION)
23message(STATUS "Parabix_REVISION: ${Parabix_REVISION}")
24
25
26# Now set the header and library paths:
27include_directories( ${LLVM_INCLUDE_DIRS} )
28link_directories( ${LLVM_LIBRARY_DIRS} )
29add_definitions( ${LLVM_DEFINITIONS} )
30
31# include(FindCUDA) # https://cmake.org/cmake/help/v3.0/module/FindCUDA.html
32
33option(ENABLE_CUDA_COMPILE "Compiling with CUDA")
34set(CUDA_LIB "")
35if(ENABLE_CUDA_COMPILE)
36  find_package(CUDA)
37  if(CUDA_FOUND)
38    set(CUDA_INCLUDE ${CUDA_INCLUDE} "/usr/local/cuda-7.5/include")
39    include_directories(${CUDA_INCLUDE})
40    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DCUDA_ENABLED")
41    SET(CUDA_LIB "cuda")
42  endif(CUDA_FOUND)
43endif()
44
45# Let's suppose we want to build a JIT compiler with support for
46# binary code (no interpreter):
47set(LLVM_ALL_TARGETS X86)
48llvm_map_components_to_libnames(REQ_LLVM_LIBRARIES ${LLVM_ALL_TARGETS} mcjit native IRReader Linker)
49
50# Check if boost has been installed on this system.
51set(Boost_USE_STATIC_LIBS ON)
52set(Boost_USE_MULTITHREADED OFF)
53set(Boost_USE_STATIC_RUNTIME OFF)
54find_package(Boost 1.46 REQUIRED COMPONENTS system filesystem iostreams)
55message(STATUS "Found Boost_LIBRARY_DIR: ${Boost_LIBRARY_DIR}")
56
57include_directories("${Boost_INCLUDE_DIRS}")
58link_directories(${Boost_LIBRARY_DIR})
59
60SET(OBJECT_CACHE_SRC toolchain/object_cache.cpp)
61
62SET(GREP_CORE_SRC kernels/linebreak_kernel.cpp kernels/grep_kernel.cpp kernels/scanmatchgen.cpp )
63
64SET(TOOLCHAIN_SRC toolchain/toolchain.cpp toolchain/pipeline.cpp)
65
66SET(DRIVER_SRC toolchain/driver.cpp toolchain/cpudriver.cpp)
67if(ENABLE_CUDA_COMPILE)
68SET(DRIVER_SRC ${DRIVER_SRC} toolchain/NVPTXDriver.cpp)
69endif()
70
71SET(KERNEL_SRC kernels/attributes.cpp kernels/processing_rate.cpp kernels/interface.cpp kernels/kernel.cpp kernels/multiblock_kernel.cpp kernels/block_kernel.cpp kernels/streamset.cpp kernels/kernel_builder.cpp)
72SET(KERNEL_SRC ${KERNEL_SRC} kernels/source_kernel.cpp kernels/s2p_kernel.cpp kernels/deletion.cpp kernels/swizzle.cpp kernels/p2s_kernel.cpp kernels/stdout_kernel.cpp kernels/hex_convert.cpp)
73
74SET(IDISA_SRC IR_Gen/CBuilder.cpp IR_Gen/idisa_builder.cpp IR_Gen/idisa_avx_builder.cpp IR_Gen/idisa_i64_builder.cpp IR_Gen/idisa_sse_builder.cpp)
75SET(IDISA_SRC ${IDISA_SRC} IR_Gen/idisa_target.cpp)
76if(ENABLE_CUDA_COMPILE)
77SET(IDISA_SRC ${IDISA_SRC} IR_Gen/idisa_nvptx_builder.cpp)
78endif()
79
80SET(PABLO_SRC pablo/pabloAST.cpp pablo/branch.cpp pablo/codegenstate.cpp pablo/builder.cpp pablo/symbol_generator.cpp pablo/printer_pablos.cpp pablo/pablo_toolchain.cpp)
81SET(PABLO_SRC ${PABLO_SRC} pablo/pablo_kernel.cpp pablo/pablo_compiler.cpp)
82IF (CARRYPACK_MANAGER)
83SET(PABLO_SRC ${PABLO_SRC} pablo/carrypack_manager.cpp)
84ELSE()
85SET(PABLO_SRC ${PABLO_SRC} pablo/carry_manager.cpp)
86ENDIF()
87SET(PABLO_SRC ${PABLO_SRC} pablo/analysis/pabloverifier.cpp)
88SET(PABLO_SRC ${PABLO_SRC} pablo/optimizers/pablo_simplifier.cpp pablo/optimizers/codemotionpass.cpp pablo/optimizers/distributivepass.cpp pablo/optimizers/schedulingprepass.cpp)
89SET(PABLO_SRC ${PABLO_SRC} pablo/passes/flattenif.cpp)
90IF(ENABLE_MULTIPLEXING)
91SET(PABLO_SRC ${PABLO_SRC} pablo/optimizers/pablo_automultiplexing.cpp)
92ENDIF()
93
94SET (RE_PARSERS_SRC re/parsers/PCRE_parser.cpp re/parsers/ERE_parser.cpp re/parsers/BRE_parser.cpp re/parsers/Prosite_parser.cpp re/parsers/fixed_string_parser.cpp re/parsers/GLOB_parser.cpp re/parsers/parser.cpp)
95
96add_library(CodeGen ${TOOLCHAIN_SRC} ${DRIVER_SRC} ${OBJECT_CACHE_SRC} ${KERNEL_SRC} ${IDISA_SRC})
97add_library(PabloADT ${PABLO_SRC})
98# CCADT is the core library for representing and compiling character classes
99add_library(CCADT re/re_re.cpp re/re_cc.cpp cc/cc_compiler.cpp cc/alphabet.cpp cc/multiplex_CCs.cpp UCD/unicode_set.cpp)
100# RegExpADT is the core library for representing, parsing and printing regular expressions
101add_library(RegExpADT re/re_rep.cpp re/re_diff.cpp re/re_intersect.cpp re/re_range.cpp re/re_assertion.cpp re/printer_re.cpp re/re_utility.cpp)
102add_library(RegExpCompiler ${RE_PARSERS_SRC} re/casing.cpp re/to_utf8.cpp re/re_memoizer.cpp re/re_nullable.cpp re/re_simplifier.cpp re/re_star_normal.cpp re/re_minimizer.cpp re/re_local.cpp re/re_compiler.cpp re/re_analysis.cpp re/re_toolchain.cpp re/re_name_resolve.cpp re/re_name_gather.cpp re/collect_ccs.cpp re/re_multiplex.cpp re/re_utility.cpp re/grapheme_clusters.cpp re/exclude_CC.cpp re/replaceCC.cpp)
103add_library(UCDlib UCD/CaseFolding.cpp utf8_encoder.cpp utf16_encoder.cpp UCD/ucd_compiler.cpp UCD/PropertyObjects.cpp UCD/resolve_properties.cpp)
104add_library(GrepEngine  ${GREP_CORE_SRC} grep/grep_engine.cpp kernels/cc_kernel.cpp kernels/cc_scan_kernel.cpp kernels/charclasses.cpp kernels/streams_merge.cpp kernels/until_n.cpp kernels/UCD_property_kernel.cpp kernels/grapheme_kernel.cpp)
105add_library(LZ4_Lib lz4/lz4_frame_decoder.cpp kernels/cc_kernel.cpp kernels/pdep_kernel.cpp lz4/lz4_decompression_generator.cpp kernels/lz4/lz4_block_decoder.cpp kernels/bitstream_pdep_kernel.cpp kernels/bitstream_gather_pdep_kernel.cpp kernels/swizzled_multiple_pdep_kernel.cpp kernels/fake_stream_generating_kernel.cpp kernels/lz4/decompression/lz4_bytestream_decompression.cpp kernels/lz4/decompression/lz4_swizzled_decompression.cpp kernels/lz4/decompression/lz4_parallel_bytestream_decompression.cpp kernels/lz4/decompression/lz4_sequential_decompression_base.cpp kernels/lz4/decompression/lz4_bitstream_decompression.cpp kernels/lz4/decompression/lz4_twist_decompression.cpp kernels/lz4/twist_kernel.cpp kernels/lz4/untwist_kernel.cpp lz4/lz4_base_generator.cpp)
106add_library(LZParabix_Lib lzparabix/LZParabixGenerator.cpp kernels/lzparabix/decoder/LZParabixBlockDecoder.cpp kernels/lzparabix/decoder/LZParabixAioBaseKernel.cpp lzparabix/LZParabixGrepGenerator.cpp kernels/fake_stream_generating_kernel.cpp kernels/lzparabix/encoder/LZParabixCompressionKernel.cpp kernels/lzparabix/decoder/LZParabixLiteralDecoderKernel.cpp kernels/lzparabix/decoder/LZParabixBitStreamAioKernel.cpp kernels/lzparabix/decoder/LZParabixSwizzledAioKernel.cpp)
107
108# force the compiler to compile the object cache to ensure that the versioning information is up to date
109add_custom_target(RecompileObjectCache ALL touch ${CMAKE_CURRENT_SOURCE_DIR}/${OBJECT_CACHE_SRC})
110add_dependencies(CodeGen RecompileObjectCache)
111
112# add the executable
113target_link_libraries (CodeGen ${REQ_LLVM_LIBRARIES})
114target_link_libraries (PabloADT CodeGen)
115target_link_libraries (CCADT PabloADT)
116target_link_libraries (RegExpADT PabloADT CCADT)
117target_link_libraries (UCDlib GrepEngine RegExpCompiler RegExpADT PabloADT CCADT)
118target_link_libraries (RegExpCompiler UCDlib CCADT RegExpADT)
119target_link_libraries (GrepEngine RegExpCompiler CodeGen)
120
121add_executable(icgrep icgrep.cpp util/file_select.cpp grep_interface.cpp)
122add_executable(u8u16 u8u16.cpp)
123add_executable(u32u8 u32u8.cpp kernels/pdep_kernel.cpp)
124add_executable(base64 base64.cpp kernels/radix64.cpp)
125add_executable(wc wc.cpp util/file_select.cpp)
126add_executable(editd editd/editd.cpp editd/pattern_compiler.cpp editd/editdscan_kernel.cpp editd/editd_gpu_kernel.cpp editd/editd_cpu_kernel.cpp kernels/streams_merge.cpp kernels/cc_kernel.cpp)
127add_executable(lz4d lz4d.cpp lz4/lz4_frame_decoder.cpp kernels/cc_kernel.cpp kernels/lz4/lz4_index_decoder.cpp kernels/lz4/lz4_bytestream_decoder.cpp)
128add_executable(core combine/core.cpp combine/regexGen.cpp combine/stringGen.cpp combine/propGen.cpp combine/icgrep-test/icgrep-test.cpp grep_interface.cpp grep/grep_engine.cpp kernels/scanmatchgen.cpp kernels/u8u32_kernel.cpp kernels/delmask_kernel.cpp kernels/cc_kernel.cpp kernels/cc_scan_kernel.cpp kernels/charclasses.cpp kernels/linebreak_kernel.cpp kernels/streams_merge.cpp kernels/grep_kernel.cpp kernels/until_n.cpp)
129add_executable(character_deletion character_deletion.cpp kernels/cc_kernel.cpp)
130add_executable(character_deposit character_deposit.cpp kernels/cc_kernel.cpp kernels/pdep_kernel.cpp kernels/bitstream_pdep_kernel.cpp)
131add_executable(lz4_decoder lz4_decoder.cpp)
132add_executable(lz4_grep grep_interface.cpp util/file_select.cpp lz4_grep.cpp lz4/lz4_grep_generator.cpp)
133add_executable(lzparabix_decoder lzparabix_decoder.cpp)
134add_executable(lzparabix_grep lzparabix_grep.cpp grep_interface.cpp util/file_select.cpp)
135add_executable(lzparabix_compressor lzparabix_compressor.cpp lzparabix/LZParabixCompressorGenerator.cpp)
136add_executable(idisa_test idisa_test.cpp)
137
138
139#Exclude CoRE from default build.
140set_target_properties(core PROPERTIES EXCLUDE_FROM_ALL 1)
141
142target_link_libraries (icgrep GrepEngine UCDlib PabloADT RegExpCompiler CCADT CodeGen ${REQ_LLVM_LIBRARIES} ${Boost_LIBRARIES} ${CUDA_LIB})
143target_link_libraries (u8u16 PabloADT CCADT CodeGen ${REQ_LLVM_LIBRARIES} ${Boost_LIBRARIES} ${CUDA_LIB})
144target_link_libraries (u32u8 PabloADT CCADT CodeGen ${REQ_LLVM_LIBRARIES} ${Boost_LIBRARIES} ${CUDA_LIB})
145target_link_libraries (base64 PabloADT CCADT CodeGen ${REQ_LLVM_LIBRARIES} ${Boost_LIBRARIES} ${CUDA_LIB})
146target_link_libraries (wc GrepEngine UCDlib PabloADT RegExpCompiler  CCADT CodeGen ${REQ_LLVM_LIBRARIES} ${Boost_LIBRARIES} ${CUDA_LIB})
147target_link_libraries (editd PabloADT CCADT CodeGen ${REQ_LLVM_LIBRARIES} ${Boost_LIBRARIES} ${CUDA_LIB})
148target_link_libraries (lz4d PabloADT CCADT CodeGen ${REQ_LLVM_LIBRARIES} ${Boost_LIBRARIES} ${CUDA_LIB})
149target_link_libraries (core RegExpCompiler ${REQ_LLVM_LIBRARIES} ${Boost_LIBRARIES})
150target_link_libraries (character_deletion PabloADT RegExpCompiler CCADT CodeGen ${REQ_LLVM_LIBRARIES} ${Boost_LIBRARIES} ${CUDA_LIB})
151target_link_libraries (character_deposit PabloADT RegExpCompiler CCADT CodeGen ${REQ_LLVM_LIBRARIES} ${Boost_LIBRARIES} ${CUDA_LIB})
152target_link_libraries (lz4_decoder LZ4_Lib PabloADT CCADT CodeGen ${REQ_LLVM_LIBRARIES} ${Boost_LIBRARIES} ${CUDA_LIB})
153target_link_libraries (lz4_grep LZ4_Lib GrepEngine UCDlib PabloADT RegExpCompiler CodeGen CCADT CodeGen ${REQ_LLVM_LIBRARIES} ${Boost_LIBRARIES} ${CUDA_LIB})
154target_link_libraries (lzparabix_decoder LZParabix_Lib PabloADT CCADT CodeGen ${REQ_LLVM_LIBRARIES} ${Boost_LIBRARIES} ${CUDA_LIB})
155target_link_libraries (lzparabix_grep LZParabix_Lib GrepEngine UCDlib PabloADT RegExpCompiler CodeGen CCADT CodeGen ${REQ_LLVM_LIBRARIES} ${Boost_LIBRARIES} ${CUDA_LIB})
156target_link_libraries (lzparabix_compressor LZParabix_Lib PabloADT CCADT CodeGen ${REQ_LLVM_LIBRARIES} ${Boost_LIBRARIES} ${CUDA_LIB})
157target_link_libraries (idisa_test CodeGen PabloADT ${REQ_LLVM_LIBRARIES} ${Boost_LIBRARIES} ${CUDA_LIB})
158
159
160IF(ENABLE_MULTIPLEXING)
161    message(STATUS "Enabling Multiplexing")
162    find_package(Z3 REQUIRED)
163    include_directories(${Z3_INCLUDE_DIRS})
164    target_link_libraries(PabloADT ${Z3_LIBRARIES})
165    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DENABLE_MULTIPLEXING")
166ENDIF()
167
168include_directories("${PROJECT_SOURCE_DIR}")
169
170#Check compiler support for 0x / 11
171include(CheckCXXCompilerFlag)
172CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
173if(COMPILER_SUPPORTS_CXX11)
174  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
175else()
176  CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
177  if(COMPILER_SUPPORTS_CXX0X)
178    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
179  else()
180    CHECK_CXX_COMPILER_FLAG("-std=gnu++11" COMPILER_SUPPORTS_GNU11)
181    if(COMPILER_SUPPORTS_GNU11)
182      set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11")
183    else()
184      CHECK_CXX_COMPILER_FLAG("-std=gnu++0x" COMPILER_SUPPORTS_GNU0X)
185      if(COMPILER_SUPPORTS_GNU0X)
186        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++0x")
187      endif()
188    endif()
189  endif()
190endif()
191
192#Disable RunTime Type Information
193IF (MSVC) # using Visual Studio C++
194  SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /GR-")
195ELSE() # using Clang, GCC, Intel C++, etc
196  SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti") 
197ENDIF()
198
199#Disable Dual ABI support
200IF(DISABLE_DUAL_ABI)
201SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_GLIBCXX_USE_CXX11_ABI=0")
202ENDIF()
203
204#Enable all warnings
205SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
206
207UNSET(HAS_EXECINFO CACHE)
208UNSET(HAS_MACH_VM_TYPES CACHE)
209include(CheckIncludeFileCXX)
210CHECK_INCLUDE_FILE_CXX(mach/vm_types.h HAS_MACH_VM_TYPES)
211IF (HAS_MACH_VM_TYPES)
212  SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DHAS_MACH_VM_TYPES")
213ELSE()
214  UNSET(LIBUNWIND_FOUND CACHE)
215  find_package(Libunwind)
216  IF (LIBUNWIND_FOUND)
217    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DHAS_LIBUNWIND")
218    include_directories(${LIBUNWIND_INCLUDE_DIR})
219    target_link_libraries(CodeGen ${LIBUNWIND_LIBRARIES})
220  ELSE()
221    CHECK_INCLUDE_FILE_CXX(execinfo.h HAS_EXECINFO)
222    IF (HAS_EXECINFO)
223       SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DHAS_EXECINFO")
224    ENDIF()
225  ENDIF()
226ENDIF()
227
228IF (CARRYPACK_MANAGER)
229SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUSE_CARRYPACK_MANAGER")
230ENDIF()
231
232SET(CMAKE_REQUIRED_FLAGS)
233
234# detect LLVM version and add compiler flags.
235MATH(EXPR LLVM_VERSION_INTEGER "${LLVM_VERSION_MAJOR} * 10000 + ${LLVM_VERSION_MINOR} * 100 + ${LLVM_VERSION_PATCH}")
236SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DLLVM_VERSION_INTEGER=${LLVM_VERSION_INTEGER}")
237SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DLLVM_VERSION_major=${LLVM_VERSION_MAJOR} -DLLVM_VERSION_MINOR=${LLVM_VERSION_MINOR}")
238message(STATUS "LLVM Version Integer: ${LLVM_VERSION_INTEGER}")
239
240SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DPARABIX_VERSION='\"${Parabix_REVISION}\"'")
241IF (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
242  SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fuse-ld=gold")
243ENDIF()
244
245SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_RELEASE} -O3 -DNDEBUG")
246
247SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_DEBUG} -O1 -g -fno-omit-frame-pointer -fno-optimize-sibling-calls")
248
249UNSET(HAS_ADDRESS_SANITIZER)
250IF (USE_ADDRESS_SANITIZER)
251CHECK_INCLUDE_FILE_CXX("sanitizer/asan_interface.h" HAS_ADDRESS_SANITIZER)
252IF (HAS_ADDRESS_SANITIZER)
253SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DHAS_ADDRESS_SANITIZER -fsanitize=address")
254ENDIF()
255ENDIF()
256
257add_test(
258  NAME greptest
259  WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/../QA
260  COMMAND python greptest.py ${CMAKE_BINARY_DIR}/icgrep)
261
262add_test(
263  NAME proptest
264  WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/../QA
265  COMMAND python greptest.py -d ${PROJECT_SOURCE_DIR}/../QA -t ${PROJECT_SOURCE_DIR}/../QA/proptest.xml ${CMAKE_BINARY_DIR}/icgrep)
266
267add_test(
268  NAME abc_test
269  WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/../QA
270  COMMAND ./run_abc ${CMAKE_BINARY_DIR}/icgrep)
271
272add_test(
273  NAME u8u16_test
274  WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/../QA/u8u16
275  COMMAND ./run_all "${CMAKE_BINARY_DIR}/u8u16 -segment-size=16 -enable-segment-pipeline-parallel")
276
277add_test(
278  NAME u32u8_test
279  WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/../QA/
280  COMMAND ./test_u32u8 "${CMAKE_BINARY_DIR}/u32u8")
281
282#add_test(
283#  NAME lz4d_test
284#  WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/../QA/lz4d
285#  COMMAND ./run_all ${CMAKE_BINARY_DIR}/lz4d)
286
287add_test(
288  NAME editd_test
289  WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/../QA/editd
290  COMMAND python run_all.py -e ${CMAKE_BINARY_DIR})
291
292add_test(
293  NAME base64_test
294  WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/../QA/base64
295  COMMAND python base64test.py ${CMAKE_BINARY_DIR}/base64)
296
297add_test(
298  NAME pdep64_test
299  WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/../QA/IDISA_test
300  COMMAND ${CMAKE_BINARY_DIR}/idisa_test simd_pdep 64 randhex65536a randhex65536b)
301
302#add_test(
303#  NAME character_deletion_test
304#  WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/../QA/character_deletion
305#  COMMAND python character_deletion_test.py ${CMAKE_BINARY_DIR}/character_deletion
306#)
307
308#add_test(
309#  NAME character_deposit_test
310#  WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/../QA/character_deposit
311#  COMMAND python character_deposit_test.py ${CMAKE_BINARY_DIR}/character_deposit
312#)
313
314#add_test(
315#  NAME lz4d_ext_dep_test
316#  WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/../QA/lz4d_ext_dep
317#  COMMAND python main.py ${CMAKE_BINARY_DIR}/lz4d_ext_dep
318#)
319
320SET_PROPERTY(TEST greptest PROPERTY TIMEOUT 400)
321SET_PROPERTY(TEST proptest PROPERTY TIMEOUT 1500)
322SET_PROPERTY(TEST abc_test PROPERTY TIMEOUT 100)
323SET_PROPERTY(TEST u8u16_test editd_test base64_test PROPERTY TIMEOUT 40)
324
325
326add_custom_target (greptest
327  WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/../QA
328  COMMAND python greptest.py "${CMAKE_BINARY_DIR}/icgrep")
329
330add_custom_target (proptest
331  WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/../QA
332  COMMAND python greptest.py -d ${PROJECT_SOURCE_DIR}/../QA -t ${PROJECT_SOURCE_DIR}/../QA/proptest.xml "${CMAKE_BINARY_DIR}/icgrep")
333
334add_custom_target (u8u16_test
335  WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/../QA/u8u16
336  COMMAND ./run_all "${CMAKE_BINARY_DIR}/u8u16 -segment-size=16 -enable-segment-pipeline-parallel")
337
338add_custom_target (u32u8_test
339  WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/../QA
340  COMMAND ./test_u32u8 "${CMAKE_BINARY_DIR}/u32u8 -EnableAsserts -VerifyIR")
341
342add_custom_target (lz4d_test
343  WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/../QA/lz4d
344  COMMAND ./run_all "${CMAKE_BINARY_DIR}/lz4d")
345
346add_custom_target (editd_test
347  WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/../QA/editd
348  COMMAND python run_all.py -e ${CMAKE_BINARY_DIR})
349
350add_custom_target (base64_test
351  WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/../QA/base64
352  COMMAND python base64test.py "${CMAKE_BINARY_DIR}/base64")
353
354#add_custom_target(character_deletion_test
355#  WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/../QA/character_deletion
356#  COMMAND python character_deletion_test.py ${CMAKE_BINARY_DIR}/character_deletion
357#)
358
359#add_custom_target(character_deposit_test
360#  WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/../QA/character_deposit
361#  COMMAND python character_deposit_test.py ${CMAKE_BINARY_DIR}/character_deposit
362#)
363
364#add_custom_target(lz4d_ext_dep_test
365#  WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/../QA/lz4d_ext_dep_test
366#  COMMAND python main.py ${CMAKE_BINARY_DIR}/lz4d_ext_dep_test
367#)
368
369add_custom_target (abc_gen
370  WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/../QA
371  COMMAND python abc_testgen.py)
372 
373add_custom_target (abc_test
374  WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/../QA
375  COMMAND ./run_abc "${CMAKE_BINARY_DIR}/icgrep")
376
377add_custom_target (check
378  COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure
379  DEPENDS icgrep abc_gen)
380
381add_custom_target (perf_icgrep
382  COMMAND python2 perf.py icgrep
383  WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/../performance
384  DEPENDS icgrep)
385
386add_custom_target (viewer
387  COMMAND python2 viewer.py
388  WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/../performance)
389
390add_custom_target (text_viewer
391  COMMAND python2 viewer.py -t
392  WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/../performance)
393
394
Note: See TracBrowser for help on using the repository browser.