From: derek Date: Mon, 28 Nov 2011 23:48:59 +0000 (-0500) Subject: Updated CMakeLists.txt files X-Git-Url: https://git.donarmstrong.com/?p=bamtools.git;a=commitdiff_plain;h=a50400c186a05160e1164bf544571b739ff6fac8 Updated CMakeLists.txt files --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 70f606f..f4f23bd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,44 +6,47 @@ # ========================== # set project name -project (BamTools) +project( BamTools ) # Cmake requirements -cmake_minimum_required (VERSION 2.6.4) +cmake_minimum_required( VERSION 2.6.4 ) + +# init CTest +enable_testing() # Force the build directory to be different from source directory -macro (ENSURE_OUT_OF_SOURCE_BUILD MSG) - string (COMPARE EQUAL "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" insource) - get_filename_component (PARENTDIR ${CMAKE_SOURCE_DIR} PATH) - string (COMPARE EQUAL "${CMAKE_SOURCE_DIR}" "${PARENTDIR}" insourcesubdir) - IF (insource OR insourcesubdir) - message (FATAL_ERROR "${MSG}") - ENDIF (insource OR insourcesubdir) -endmacro (ENSURE_OUT_OF_SOURCE_BUILD) - -ensure_out_of_source_build (" +macro( ENSURE_OUT_OF_SOURCE_BUILD MSG ) + string( COMPARE EQUAL "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" insource ) + get_filename_component( PARENTDIR ${CMAKE_SOURCE_DIR} PATH ) + string( COMPARE EQUAL "${CMAKE_SOURCE_DIR}" "${PARENTDIR}" insourcesubdir ) + IF( insource OR insourcesubdir ) + message( FATAL_ERROR "${MSG}" ) + ENDIF( insource OR insourcesubdir ) +endmacro( ENSURE_OUT_OF_SOURCE_BUILD ) + +ensure_out_of_source_build( " ${PROJECT_NAME} requires an out of source build. $ mkdir build $ cd build $ cmake .. $ make -(or the Windows equivalent)\n") +(or the Windows equivalent)\n" ) # set BamTools version information -set (BamTools_VERSION_MAJOR 2) -set (BamTools_VERSION_MINOR 0) -set (BamTools_VERSION_BUILD 5) +set( BamTools_VERSION_MAJOR 2 ) +set( BamTools_VERSION_MINOR 0 ) +set( BamTools_VERSION_BUILD 5 ) # set our library and executable destination dirs -set (EXECUTABLE_OUTPUT_PATH "${CMAKE_SOURCE_DIR}/bin") -set (LIBRARY_OUTPUT_PATH "${CMAKE_SOURCE_DIR}/lib") +set( EXECUTABLE_OUTPUT_PATH "${CMAKE_SOURCE_DIR}/bin" ) +set( LIBRARY_OUTPUT_PATH "${CMAKE_SOURCE_DIR}/lib" ) # define compiler flags for all code -set (CMAKE_BUILD_TYPE Release) -add_definitions (-Wall -D_FILE_OFFSET_BITS=64) +set( CMAKE_BUILD_TYPE Release ) +add_definitions( -Wall -D_FILE_OFFSET_BITS=64 ) # add our includes root path -include_directories (src) +include_directories( src ) # list subdirectories to build in -add_subdirectory (src) +add_subdirectory( src ) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 3925d58..9513abb 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -5,14 +5,13 @@ # src/ # ========================== -add_subdirectory (api) -add_subdirectory (utils) -add_subdirectory (third_party) -add_subdirectory (toolkit) +add_subdirectory( api ) +add_subdirectory( test ) +add_subdirectory( third_party ) +add_subdirectory( toolkit ) +add_subdirectory( utils ) # export shared headers -include(ExportHeader.cmake) -set(SharedIncludeDir "shared") -ExportHeader(SharedHeaders shared/bamtools_global.h ${SharedIncludeDir}) - - +include( ExportHeader.cmake ) +set( SharedIncludeDir "shared" ) +ExportHeader( SharedHeaders shared/bamtools_global.h ${SharedIncludeDir} ) diff --git a/src/api/BamIndex.h b/src/api/BamIndex.h index b0b1281..fd41f69 100644 --- a/src/api/BamIndex.h +++ b/src/api/BamIndex.h @@ -66,6 +66,9 @@ class API_EXPORT BamIndex { // loads existing data from file into memory virtual bool Load(const std::string& filename) =0; + // returns the 'type' enum for derived index format + virtual BamIndex::IndexType Type(void) const =0; + //! \cond // internal methods diff --git a/src/api/CMakeLists.txt b/src/api/CMakeLists.txt index 55f2560..c8504ed 100644 --- a/src/api/CMakeLists.txt +++ b/src/api/CMakeLists.txt @@ -49,43 +49,41 @@ set( BamToolsAPISources # create main BamTools API shared library add_library( BamTools SHARED ${BamToolsAPISources} ) -set_target_properties( BamTools PROPERTIES SOVERSION "2.0.5" ) -set_target_properties( BamTools PROPERTIES OUTPUT_NAME "bamtools" ) +set_target_properties( BamTools PROPERTIES + SOVERSION "2.0.5" + OUTPUT_NAME "bamtools" ) +target_link_libraries( BamTools z ) +install( TARGETS BamTools LIBRARY DESTINATION "lib/bamtools" RUNTIME DESTINATION "bin" ) # create main BamTools API static library add_library( BamTools-static STATIC ${BamToolsAPISources} ) -set_target_properties( BamTools-static PROPERTIES OUTPUT_NAME "bamtools" ) -set_target_properties( BamTools-static PROPERTIES PREFIX "lib" ) - -# link libraries with zlib automatically -target_link_libraries( BamTools z ) +set_target_properties( BamTools-static PROPERTIES + OUTPUT_NAME "bamtools" + PREFIX "lib" ) target_link_libraries( BamTools-static z ) - -# set library install destinations -install( TARGETS BamTools LIBRARY DESTINATION "lib/bamtools" RUNTIME DESTINATION "bin") -install( TARGETS BamTools-static ARCHIVE DESTINATION "lib/bamtools") +install( TARGETS BamTools-static ARCHIVE DESTINATION "lib/bamtools" ) # export API headers -include(../ExportHeader.cmake) -set(ApiIncludeDir "api") -ExportHeader(APIHeaders api_global.h ${ApiIncludeDir}) -ExportHeader(APIHeaders BamAlgorithms.h ${ApiIncludeDir}) -ExportHeader(APIHeaders BamAlignment.h ${ApiIncludeDir}) -ExportHeader(APIHeaders BamAux.h ${ApiIncludeDir}) -ExportHeader(APIHeaders BamConstants.h ${ApiIncludeDir}) -ExportHeader(APIHeaders BamIndex.h ${ApiIncludeDir}) -ExportHeader(APIHeaders BamMultiReader.h ${ApiIncludeDir}) -ExportHeader(APIHeaders BamReader.h ${ApiIncludeDir}) -ExportHeader(APIHeaders BamWriter.h ${ApiIncludeDir}) -ExportHeader(APIHeaders IBamIODevice.h ${ApiIncludeDir}) -ExportHeader(APIHeaders SamConstants.h ${ApiIncludeDir}) -ExportHeader(APIHeaders SamHeader.h ${ApiIncludeDir}) -ExportHeader(APIHeaders SamProgram.h ${ApiIncludeDir}) -ExportHeader(APIHeaders SamProgramChain.h ${ApiIncludeDir}) -ExportHeader(APIHeaders SamReadGroup.h ${ApiIncludeDir}) -ExportHeader(APIHeaders SamReadGroupDictionary.h ${ApiIncludeDir}) -ExportHeader(APIHeaders SamSequence.h ${ApiIncludeDir}) -ExportHeader(APIHeaders SamSequenceDictionary.h ${ApiIncludeDir}) +include( ../ExportHeader.cmake ) +set( ApiIncludeDir "api" ) +ExportHeader( APIHeaders api_global.h ${ApiIncludeDir} ) +ExportHeader( APIHeaders BamAlgorithms.h ${ApiIncludeDir} ) +ExportHeader( APIHeaders BamAlignment.h ${ApiIncludeDir} ) +ExportHeader( APIHeaders BamAux.h ${ApiIncludeDir} ) +ExportHeader( APIHeaders BamConstants.h ${ApiIncludeDir} ) +ExportHeader( APIHeaders BamIndex.h ${ApiIncludeDir} ) +ExportHeader( APIHeaders BamMultiReader.h ${ApiIncludeDir} ) +ExportHeader( APIHeaders BamReader.h ${ApiIncludeDir} ) +ExportHeader( APIHeaders BamWriter.h ${ApiIncludeDir} ) +ExportHeader( APIHeaders IBamIODevice.h ${ApiIncludeDir} ) +ExportHeader( APIHeaders SamConstants.h ${ApiIncludeDir} ) +ExportHeader( APIHeaders SamHeader.h ${ApiIncludeDir} ) +ExportHeader( APIHeaders SamProgram.h ${ApiIncludeDir} ) +ExportHeader( APIHeaders SamProgramChain.h ${ApiIncludeDir} ) +ExportHeader( APIHeaders SamReadGroup.h ${ApiIncludeDir} ) +ExportHeader( APIHeaders SamReadGroupDictionary.h ${ApiIncludeDir} ) +ExportHeader( APIHeaders SamSequence.h ${ApiIncludeDir} ) +ExportHeader( APIHeaders SamSequenceDictionary.h ${ApiIncludeDir} ) -set(AlgorithmsIncludeDir "api/algorithms") -ExportHeader(AlgorithmsHeaders algorithms/Sort.h ${AlgorithmsIncludeDir}) +set( AlgorithmsIncludeDir "api/algorithms" ) +ExportHeader( AlgorithmsHeaders algorithms/Sort.h ${AlgorithmsIncludeDir} ) diff --git a/src/api/internal/BamStandardIndex_p.h b/src/api/internal/BamStandardIndex_p.h index 03e0042..e49bc26 100644 --- a/src/api/internal/BamStandardIndex_p.h +++ b/src/api/internal/BamStandardIndex_p.h @@ -122,6 +122,7 @@ class BamStandardIndex : public BamIndex { bool Jump(const BamTools::BamRegion& region, bool* hasAlignmentsInRegion); // loads existing data from file into memory bool Load(const std::string& filename); + BamIndex::IndexType Type(void) const { return BamIndex::STANDARD; } public: // returns format's file extension static const std::string Extension(void); diff --git a/src/api/internal/BamToolsIndex_p.h b/src/api/internal/BamToolsIndex_p.h index 7c1550b..1e9ec18 100644 --- a/src/api/internal/BamToolsIndex_p.h +++ b/src/api/internal/BamToolsIndex_p.h @@ -117,6 +117,7 @@ class BamToolsIndex : public BamIndex { bool Jump(const BamTools::BamRegion& region, bool* hasAlignmentsInRegion); // loads existing data from file into memory bool Load(const std::string& filename); + BamIndex::IndexType Type(void) const { return BamIndex::BAMTOOLS; } public: // returns format's file extension static const std::string Extension(void); diff --git a/src/third_party/CMakeLists.txt b/src/third_party/CMakeLists.txt index 15229c6..653e391 100644 --- a/src/third_party/CMakeLists.txt +++ b/src/third_party/CMakeLists.txt @@ -6,5 +6,5 @@ # ========================== # list third-party subdirectories to build in -add_subdirectory (jsoncpp) - +add_subdirectory( gtest-1.6.0 ) +add_subdirectory( jsoncpp ) diff --git a/src/third_party/jsoncpp/CMakeLists.txt b/src/third_party/jsoncpp/CMakeLists.txt index 9cc442a..03c091b 100644 --- a/src/third_party/jsoncpp/CMakeLists.txt +++ b/src/third_party/jsoncpp/CMakeLists.txt @@ -6,15 +6,15 @@ # ========================== # add compiler definitions -add_definitions(-DBAMTOOLS_JSONCPP_LIBRARY) # (for proper exporting of library symbols) +add_definitions( -DBAMTOOLS_JSONCPP_LIBRARY ) # (for proper exporting of library symbols) add_definitions( -fPIC ) # (attempt to force PIC compiling on CentOS, not being set on shared libs by CMake) # create jsoncpp library -add_library ( jsoncpp SHARED - json_reader.cpp - json_value.cpp - json_writer.cpp - ) +add_library( jsoncpp SHARED + json_reader.cpp + json_value.cpp + json_writer.cpp + ) # set jsoncpp library properties set_target_properties( jsoncpp PROPERTIES diff --git a/src/toolkit/CMakeLists.txt b/src/toolkit/CMakeLists.txt index 0620b41..2f0bf87 100644 --- a/src/toolkit/CMakeLists.txt +++ b/src/toolkit/CMakeLists.txt @@ -6,28 +6,28 @@ # ========================== # set include path -include_directories ( ${BamTools_SOURCE_DIR}/src/api - ${BamTools_SOURCE_DIR}/src/utils - ${BamTools_SOURCE_DIR}/src/third_party - ) +include_directories( ${BamTools_SOURCE_DIR}/src/api + ${BamTools_SOURCE_DIR}/src/utils + ${BamTools_SOURCE_DIR}/src/third_party + ) # compile main bamtools application -add_executable ( bamtools_cmd - bamtools_convert.cpp - bamtools_count.cpp - bamtools_coverage.cpp - bamtools_filter.cpp - bamtools_header.cpp - bamtools_index.cpp - bamtools_merge.cpp - bamtools_random.cpp - bamtools_resolve.cpp - bamtools_revert.cpp - bamtools_sort.cpp - bamtools_split.cpp - bamtools_stats.cpp - bamtools.cpp - ) +add_executable( bamtools_cmd + bamtools_convert.cpp + bamtools_count.cpp + bamtools_coverage.cpp + bamtools_filter.cpp + bamtools_header.cpp + bamtools_index.cpp + bamtools_merge.cpp + bamtools_random.cpp + bamtools_resolve.cpp + bamtools_revert.cpp + bamtools_sort.cpp + bamtools_split.cpp + bamtools_stats.cpp + bamtools.cpp + ) # set BamTools application properties set_target_properties( bamtools_cmd PROPERTIES @@ -35,10 +35,10 @@ set_target_properties( bamtools_cmd PROPERTIES OUTPUT_NAME "bamtools" ) # make version info available in application -configure_file(bamtools_version.h.in ${BamTools_SOURCE_DIR}/src/toolkit/bamtools_version.h) +configure_file( bamtools_version.h.in ${BamTools_SOURCE_DIR}/src/toolkit/bamtools_version.h ) # define libraries to link -target_link_libraries ( bamtools_cmd BamTools BamTools-utils jsoncpp ) +target_link_libraries( bamtools_cmd BamTools BamTools-utils jsoncpp ) # set application install destinations install( TARGETS bamtools_cmd DESTINATION "bin") diff --git a/src/utils/CMakeLists.txt b/src/utils/CMakeLists.txt index 46e7235..6e37cca 100644 --- a/src/utils/CMakeLists.txt +++ b/src/utils/CMakeLists.txt @@ -6,22 +6,22 @@ # ========================== # list include paths -include_directories (${BamTools_SOURCE_DIR}/src/api) +include_directories( ${BamTools_SOURCE_DIR}/src/api ) # add compiler definitions -add_definitions(-DBAMTOOLS_UTILS_LIBRARY) # (for proper exporting of library symbols) +add_definitions( -DBAMTOOLS_UTILS_LIBRARY ) # (for proper exporting of library symbols) add_definitions( -fPIC ) # (attempt to force PIC compiling on CentOS, not being set on shared libs by CMake) # create BamTools utils library -add_library ( BamTools-utils SHARED - bamtools_fasta.cpp - bamtools_options.cpp - bamtools_pileup_engine.cpp - bamtools_utilities.cpp - ) +add_library( BamTools-utils SHARED + bamtools_fasta.cpp + bamtools_options.cpp + bamtools_pileup_engine.cpp + bamtools_utilities.cpp + ) # link BamTools-utils library with BamTools automatically -target_link_libraries ( BamTools-utils BamTools ) +target_link_libraries( BamTools-utils BamTools ) # set BamTools library properties set_target_properties( BamTools-utils PROPERTIES