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