File: CMakeLists.txt

package info (click to toggle)
shasta 0.14.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 29,636 kB
  • sloc: cpp: 82,262; python: 2,348; makefile: 222; sh: 143
file content (79 lines) | stat: -rw-r--r-- 2,404 bytes parent folder | download
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
cmake_minimum_required(VERSION 3.16)
project(shastaStaticExecutable)

# C++ dialect.
add_definitions(-std=c++20)

# Compilation warnings.
add_definitions(-Wall -Wconversion -Wno-unused-result -Wno-trigraphs -Wno-psabi -Wunused-parameter)

# Optimization and debug options.
if(BUILD_DEBUG)
    add_definitions(-ggdb3)
    add_definitions(-O0)
else(BUILD_DEBUG)
    add_definitions(-O3)
    # NDEBUG is required to turn off SeqAn debug code.
    add_definitions(-DNDEBUG)
endif(BUILD_DEBUG)

# 16-byte compare and swap.
# This is recommended for dset64.hpp/dset64-gccAtomic.hpp".
# It's available only on x86 architectures.
if(X86_64)
    add_definitions(-mcx16)
endif(X86_64)

# Native build.
if(BUILD_NATIVE)
    add_definitions(-march=native)
endif(BUILD_NATIVE)

# Build id.
add_definitions(-DBUILD_ID=${BUILD_ID})

# Definitions needed to eliminate dependency on the boost system library.
add_definitions(-DBOOST_SYSTEM_NO_DEPRECATED)
add_definitions(-DBOOST_ERROR_CODE_HEADER_ONLY)

# This is needed to avoid some Boost warnings about deprecated messages.
# We canot fix this in Shasta as it is a Boost problem.
# It can be removed if Boost is fixed.
add_definitions(-DBOOST_ALLOW_DEPRECATED_HEADERS)

# Source files
file(GLOB SOURCES ../srcMain/*.cpp)

# Include directory.
include_directories(../src)

# Define our executable.
add_executable(shastaStaticExecutable ${SOURCES})
set_target_properties(shastaStaticExecutable PROPERTIES OUTPUT_NAME "shasta")

# Request a static executable.
set_target_properties(shastaStaticExecutable PROPERTIES LINK_FLAGS "-static" )

# Libraries to link with.
# For arcane reasons, statically linking with the pthread
# library on Linux requires "--whole-archive".
if(X86_64)
    target_link_libraries(
        shastaStaticExecutable
        shastaStaticLibrary
        atomic boost_system boost_program_options boost_chrono boost_serialization  spoa png z
        lapack blas quadmath
        -Wl,--whole-archive -lpthread -Wl,--no-whole-archive)
else(X86_64)
    target_link_libraries(
        shastaStaticExecutable
        shastaStaticLibrary
        atomic boost_system boost_program_options boost_chrono boost_serialization spoa png z
        lapack blas
        -Wl,--whole-archive -lpthread -Wl,--no-whole-archive)
endif(X86_64) 
  
# The static executable goes to the bin directory.
install(TARGETS shastaStaticExecutable DESTINATION shasta-install/bin)