]> git.donarmstrong.com Git - bamtools.git/blob - src/api/CMakeLists.txt
Added SAM header-handling classes for read/write/validate.
[bamtools.git] / src / api / CMakeLists.txt
1 # ==========================
2 # BamTools CMakeLists.txt
3 # (c) 2010 Derek Barnett
4 #
5 # src/api/
6 # ==========================
7
8 # list include paths
9 include_directories( ${BamTools_SOURCE_DIR}/src )
10
11 # add compiler definitions 
12 add_definitions( -DBAMTOOLS_API_LIBRARY ) # (for proper exporting of library symbols)
13
14 # list of all BamTools API source (.cpp) files
15 set( BamToolsAPISources
16         BamAlignment.cpp
17         BamIndex.cpp
18         BamMultiReader.cpp
19         BamReader.cpp
20         BamWriter.cpp
21         BGZF.cpp
22         SamHeader.cpp
23         SamReadGroup.cpp
24         SamReadGroupDictionary.cpp
25         SamSequence.cpp
26         SamSequenceDictionary.cpp
27         internal/BamMultiReader_p.cpp
28         internal/BamReader_p.cpp
29         internal/BamStandardIndex_p.cpp
30         internal/BamToolsIndex_p.cpp
31         internal/BamWriter_p.cpp
32         internal/SamFormatParser_p.cpp
33         internal/SamFormatPrinter_p.cpp
34         internal/SamHeaderValidator_p.cpp
35 )
36
37 # create main BamTools API shared library
38 add_library( BamTools SHARED ${BamToolsAPISources} )
39 set_target_properties( BamTools PROPERTIES SOVERSION "0.9.1" )
40 set_target_properties( BamTools PROPERTIES OUTPUT_NAME "bamtools" )
41
42 # create main BamTools API static library
43 add_library( BamTools-static STATIC ${BamToolsAPISources} )
44 set_target_properties( BamTools-static PROPERTIES OUTPUT_NAME "bamtools" )
45 set_target_properties( BamTools-static PROPERTIES PREFIX "lib" )
46
47 # link libraries with zlib automatically
48 target_link_libraries( BamTools z )
49 target_link_libraries( BamTools-static z )
50
51 # set library install destinations
52 install( TARGETS BamTools LIBRARY DESTINATION "lib/bamtools")
53 install( TARGETS BamTools-static ARCHIVE DESTINATION "lib/bamtools")
54
55 # export API headers
56 include(../ExportHeader.cmake)
57 set(ApiIncludeDir "api")
58 ExportHeader(APIHeaders api_global.h             ${ApiIncludeDir})
59 ExportHeader(APIHeaders BamAlignment.h           ${ApiIncludeDir})
60 ExportHeader(APIHeaders BamAux.h                 ${ApiIncludeDir})
61 ExportHeader(APIHeaders BamIndex.h               ${ApiIncludeDir})
62 ExportHeader(APIHeaders BamMultiReader.h         ${ApiIncludeDir})
63 ExportHeader(APIHeaders BamReader.h              ${ApiIncludeDir})
64 ExportHeader(APIHeaders BamWriter.h              ${ApiIncludeDir})
65 ExportHeader(APIHeaders BGZF.h                   ${ApiIncludeDir})
66 ExportHeader(APIHeaders SamConstants.h           ${ApiIncludeDir})
67 ExportHeader(APIHeaders SamHeader.h              ${ApiIncludeDir})
68 ExportHeader(APIHeaders SamReadGroup.h           ${ApiIncludeDir})
69 ExportHeader(APIHeaders SamReadGroupDictionary.h ${ApiIncludeDir})
70 ExportHeader(APIHeaders SamSequence.h            ${ApiIncludeDir})
71 ExportHeader(APIHeaders SamSequenceDictionary.h  ${ApiIncludeDir})