-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathCMakeLists.txt
57 lines (49 loc) · 1.65 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
cmake_minimum_required(VERSION 3.5)
project(kraken)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/CMake")
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/CMake")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/CMake")
file(REMOVE_RECURSE "${CMAKE_BINARY_DIR}/bin/CMake")
set(CMAKE_CXX_STANDARD 14)
# disable on win build
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
function(add_cxx_compiler_flags)
set(CMAKE_REQUIRED_QUIET true)
include(CheckCXXCompilerFlag)
set(flags ${CMAKE_CXX_FLAGS})
foreach(flag ${ARGV})
string(REGEX REPLACE "[^_A-Za-z0-9]" "_" stripped_flag "${flag}")
set(var "CXX_COMPILER_FLAG_${stripped_flag}")
check_cxx_compiler_flag("${flag}" "${var}")
if(${var})
set(flags "${flags} ${flag}")
endif()
endforeach()
set(CMAKE_CXX_FLAGS ${flags} PARENT_SCOPE)
endfunction()
add_cxx_compiler_flags(-pedantic -fno-permissive -pedantic-errors -Wall -Wextra -Wshadow -Wstrict-aliasing -Wno-misleading-indentation "-ftemplate-depth=1024")
include_directories(.)
set(SOURCE
bits_rev_table.h
log_lookup.h
qsort.h
compr_util.h
compress.h
compress.cpp
compr_multiarray.cpp
compr_match_finder.h
compr_match_finder.cpp
compr_leviathan.h
compr_leviathan.cpp
compr_kraken.h
compr_kraken.cpp
compr_tans.cpp
compr_entropy.h
compr_entropy.cpp
match_hasher.h
kraken.h
kraken.cpp
)
add_library(kraken SHARED ${SOURCE})
add_library(kraken_static STATIC ${SOURCE})
add_executable(main ${SOURCE} main.cpp)