Permalink
Browse files

use new ExternalDependency_Add feature of build-common

This sets up all of the proper dependencies on the 3rd party libs we
build, removing the need to "make deps" before starting a parallel
build.
  • Loading branch information...
1 parent efcdb8b commit a719da3d3d5029e2d8eaa91c8da19e6d9331fa92 @tabbott tabbott committed Jun 17, 2015
Showing with 38 additions and 55 deletions.
  1. +2 −15 CMakeLists.txt
  2. +0 −1 README.textile
  3. +12 −12 cmake/BuildBoost.cmake
  4. +22 −25 cmake/BuildSamtools.cmake
  5. +1 −1 src/exe/bam-readcount/CMakeLists.txt
  6. +1 −1 src/lib/bamrc/CMakeLists.txt
View
@@ -14,6 +14,8 @@ set(CMAKE_MODULE_PATH
include(TestHelper)
include(VersionHelper)
include(ProjectHelper)
+include(PreDepends)
+PreDependsInit()
#set(EXE_VERSION_SUFFIX ${FULL_VERSION})
@@ -27,9 +29,6 @@ include_directories(${Boost_INCLUDE_DIRS})
include(BuildSamtools)
include_directories(${Samtools_INCLUDE_DIRS})
-add_custom_target(deps ALL)
-add_dependencies(deps samtools-lib boost-1.55)
-
if(${CMAKE_CXX_COMPILER_ID} MATCHES "GNU|Clang")
set(CMAKE_CXX_FLAGS "-Wall -std=c++0x")
endif ()
@@ -40,18 +39,6 @@ link_libraries(${CMAKE_THREAD_LIBS_INIT})
# make sure to pick up headers from library dirs
include_directories("src/lib")
-# unit tests
-find_package(GTest)
-if(GTEST_FOUND)
- message("Google Test framework found, building unit tests")
- enable_testing(true)
- add_projects(test/lib)
-else()
- message("Google Test framework not found, no tests will be built")
- message("GTest is available at http://code.google.com/p/googletest/")
- message("Ubuntu users can likely sudo apt-get install gtest")
-endif()
-
# main project
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
View
@@ -110,7 +110,6 @@ h3. Compile bam-readcount
* bam-readcount does not support in source builds. Create a new build directory, enter it, and run:
bc. cmake /path/to/bam-readcount/repo
- make deps
make
p. The binary can then be found in the bin/ subdirectory of your build directory.
View
@@ -1,7 +1,5 @@
cmake_minimum_required(VERSION 2.8)
-include(ExternalProject)
-
set(DEFAULT_BOOST_URL ${CMAKE_SOURCE_DIR}/vendor/boost-1.55-bamrc.tar.gz)
if(NOT DEFINED BOOST_URL)
set(BOOST_URL ${DEFAULT_BOOST_URL})
@@ -24,17 +22,19 @@ endforeach(libname ${REQUIRED_BOOST_LIBS})
message("Extracting boost from ${BOOST_URL}")
message("Boost build log can be found at ${BOOST_LOG}")
-ExternalProject_Add(
+ExternalDependency_Add(
boost-1.55
- URL ${BOOST_URL}
- SOURCE_DIR ${BOOST_SRC}
- BINARY_DIR ${BOOST_SRC}
- CONFIGURE_COMMAND "./bootstrap.sh"
- BUILD_COMMAND
- echo "Building boost, build log is ${BOOST_LOG}" &&
- ./b2 --prefix=${BOOST_ROOT} --layout=system link=static
- threading=multi install ${BOOST_BUILD_LIBS} > ${BOOST_LOG} 2>&1
- INSTALL_COMMAND ""
+ BUILD_BYPRODUCTS ${Boost_LIBRARIES}
+ ARGS
+ URL ${BOOST_URL}
+ SOURCE_DIR ${BOOST_SRC}
+ BINARY_DIR ${BOOST_SRC}
+ CONFIGURE_COMMAND "./bootstrap.sh"
+ BUILD_COMMAND
+ echo "Building boost, build log is ${BOOST_LOG}" &&
+ ./b2 --prefix=${BOOST_ROOT} --layout=system link=static
+ threading=multi install ${BOOST_BUILD_LIBS} > ${BOOST_LOG} 2>&1
+ INSTALL_COMMAND "true"
)
set(Boost_INCLUDE_DIRS ${BOOST_ROOT}/include)
View
@@ -1,7 +1,5 @@
cmake_minimum_required(VERSION 2.8)
-include(ExternalProject)
-
set(SAMTOOLS_ROOT ${CMAKE_BINARY_DIR}/vendor/samtools)
set(SAMTOOLS_LOG ${SAMTOOLS_ROOT}/build.log)
set(SAMTOOLS_LIB ${SAMTOOLS_ROOT}/${CMAKE_FIND_LIBRARY_PREFIXES}bam${CMAKE_STATIC_LIBRARY_SUFFIX})
@@ -11,37 +9,36 @@ find_package(ZLIB)
if (NOT ZLIB_FOUND)
set(ZLIB_ROOT ${CMAKE_BINARY_DIR}/vendor/zlib)
set(ZLIB_SRC ${CMAKE_BINARY_DIR}/vendor/zlib-src)
- ExternalProject_Add(
- zlib
- URL ${CMAKE_SOURCE_DIR}/vendor/zlib-1.2.8.tar.gz
- SOURCE_DIR ${ZLIB_SRC}
- BINARY_DIR ${ZLIB_SRC}
- CONFIGURE_COMMAND ./configure --prefix=${ZLIB_ROOT}
- BUILD_COMMAND make
- INSTALL_COMMAND make install
- )
set(ZLIB_INCLUDE_DIRS ${ZLIB_ROOT}/include)
set(ZLIB_LIBRARIES ${ZLIB_ROOT}/lib/${CMAKE_FIND_LIBRARY_PREFIXES}z${CMAKE_STATIC_LIBRARY_SUFFIX})
- add_library(z STATIC IMPORTED)
- set_property(TARGET z PROPERTY IMPORTED_LOCATION ${ZLIB_LIBRARIES})
+ ExternalDependency_Add(
+ zlib
+ BUILD_BYPRODUCTS ${ZLIB_LIBRARIES}
+ ARGS
+ URL ${CMAKE_SOURCE_DIR}/vendor/zlib-1.2.8.tar.gz
+ SOURCE_DIR ${ZLIB_SRC}
+ BINARY_DIR ${ZLIB_SRC}
+ CONFIGURE_COMMAND ./configure --prefix=${ZLIB_ROOT}
+ BUILD_COMMAND make
+ INSTALL_COMMAND make install
+ )
endif (NOT ZLIB_FOUND)
-ExternalProject_Add(
+ExternalDependency_Add(
samtools-lib
- URL ${CMAKE_SOURCE_DIR}/vendor/samtools-0.1.19.tar.gz
- SOURCE_DIR ${SAMTOOLS_ROOT}
- BINARY_DIR ${SAMTOOLS_ROOT}
- PATCH_COMMAND patch -p2 -t -N < ${CMAKE_SOURCE_DIR}/vendor/samtools0.1.19.patch
- CONFIGURE_COMMAND echo "Building samtools, build log at ${SAMTOOLS_LOG}"
- BUILD_COMMAND make INCLUDES=-I${ZLIB_INCLUDE_DIRS} libbam.a > ${SAMTOOLS_LOG} 2>&1
- INSTALL_COMMAND ""
+ BUILD_BYPRODUCTS ${SAMTOOLS_LIB} ${SAMTOOLS_BIN}
+ ARGS
+ URL ${CMAKE_SOURCE_DIR}/vendor/samtools-0.1.19.tar.gz
+ SOURCE_DIR ${SAMTOOLS_ROOT}
+ BINARY_DIR ${SAMTOOLS_ROOT}
+ PATCH_COMMAND patch -p2 -t -N < ${CMAKE_SOURCE_DIR}/vendor/samtools0.1.19.patch
+ CONFIGURE_COMMAND echo "Building samtools, build log at ${SAMTOOLS_LOG}"
+ BUILD_COMMAND make INCLUDES=-I${ZLIB_INCLUDE_DIRS} libbam.a > ${SAMTOOLS_LOG} 2>&1
+ INSTALL_COMMAND "true"
)
-add_library(bam STATIC IMPORTED)
-set_property(TARGET bam PROPERTY IMPORTED_LOCATION ${SAMTOOLS_LIB})
-
set(Samtools_INCLUDE_DIRS ${ZLIB_INCLUDE_DIRS};${SAMTOOLS_ROOT})
-set(Samtools_LIBRARIES bam m ${ZLIB_LIBRARIES})
+set(Samtools_LIBRARIES ${SAMTOOLS_LIB} m ${ZLIB_LIBRARIES})
if (NOT ZLIB_FOUND)
add_dependencies(samtools-lib zlib)
@@ -5,7 +5,7 @@ project(bam-readcount)
set(SOURCES bamreadcount.cpp)
set(EXECUTABLE_NAME bam-readcount)
-add_executable(${EXECUTABLE_NAME} ${SOURCES})
+xadd_executable(${EXECUTABLE_NAME} ${SOURCES})
target_link_libraries(${EXECUTABLE_NAME} bamrc ${Samtools_LIBRARIES} ${Boost_LIBRARIES})
set_target_properties(${EXECUTABLE_NAME} PROPERTIES PACKAGE_OUTPUT_NAME ${EXECUTABLE_NAME}${EXE_VERSION_SUFFIX})
install(TARGETS ${EXECUTABLE_NAME} DESTINATION bin/)
@@ -9,5 +9,5 @@ set(SOURCES
BasicStat.cpp
)
-add_library(bamrc ${SOURCES})
+xadd_library(bamrc ${SOURCES})
target_link_libraries(bamrc ${Boost_LIBRARIES} ${Samtools_LIBRARIES} ${ZLIB_LIBRARIES})

0 comments on commit a719da3

Please sign in to comment.