]> git.donarmstrong.com Git - bamtools.git/blob - src/api/CMakeLists.txt
Major performance boost to startup & random-access - especially for the
[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         BamMultiReader.cpp
18         BamReader.cpp
19         BamWriter.cpp
20         SamHeader.cpp
21         SamReadGroup.cpp
22         SamReadGroupDictionary.cpp
23         SamSequence.cpp
24         SamSequenceDictionary.cpp
25         internal/BamHeader_p.cpp
26         internal/BamIndexFactory_p.cpp
27         internal/BamMultiReader_p.cpp
28         internal/BamRandomAccessController_p.cpp
29         internal/BamReader_p.cpp
30         internal/BamStandardIndex_p.cpp
31         internal/BamToolsIndex_p.cpp
32         internal/BamWriter_p.cpp
33         internal/BgzfStream_p.cpp
34         internal/SamFormatParser_p.cpp
35         internal/SamFormatPrinter_p.cpp
36         internal/SamHeaderValidator_p.cpp
37 )
38
39 # create main BamTools API shared library
40 add_library( BamTools SHARED ${BamToolsAPISources} )
41 set_target_properties( BamTools PROPERTIES SOVERSION "1.0.0" )
42 set_target_properties( BamTools PROPERTIES OUTPUT_NAME "bamtools" )
43
44 # create main BamTools API static library
45 add_library( BamTools-static STATIC ${BamToolsAPISources} )
46 set_target_properties( BamTools-static PROPERTIES OUTPUT_NAME "bamtools" )
47 set_target_properties( BamTools-static PROPERTIES PREFIX "lib" )
48
49 # link libraries with zlib automatically
50 target_link_libraries( BamTools z )
51 target_link_libraries( BamTools-static z )
52
53 # set library install destinations
54 install( TARGETS BamTools LIBRARY DESTINATION "lib/bamtools")
55 install( TARGETS BamTools-static ARCHIVE DESTINATION "lib/bamtools")
56
57 # export API headers
58 include(../ExportHeader.cmake)
59 set(ApiIncludeDir "api")
60 ExportHeader(APIHeaders api_global.h             ${ApiIncludeDir})
61 ExportHeader(APIHeaders BamAlignment.h           ${ApiIncludeDir})
62 ExportHeader(APIHeaders BamAux.h                 ${ApiIncludeDir})
63 ExportHeader(APIHeaders BamConstants.h           ${ApiIncludeDir})
64 ExportHeader(APIHeaders BamIndex.h               ${ApiIncludeDir})
65 ExportHeader(APIHeaders BamMultiReader.h         ${ApiIncludeDir})
66 ExportHeader(APIHeaders BamReader.h              ${ApiIncludeDir})
67 ExportHeader(APIHeaders BamWriter.h              ${ApiIncludeDir})
68 ExportHeader(APIHeaders SamConstants.h           ${ApiIncludeDir})
69 ExportHeader(APIHeaders SamHeader.h              ${ApiIncludeDir})
70 ExportHeader(APIHeaders SamReadGroup.h           ${ApiIncludeDir})
71 ExportHeader(APIHeaders SamReadGroupDictionary.h ${ApiIncludeDir})
72 ExportHeader(APIHeaders SamSequence.h            ${ApiIncludeDir})
73 ExportHeader(APIHeaders SamSequenceDictionary.h  ${ApiIncludeDir})