Skip to content
This repository was archived by the owner on Jan 3, 2023. It is now read-only.

Commit 266923e

Browse files
authored
Merge pull request #155 from Intel-HLS/osxcross_compile
Fixes for cross-compilation
2 parents 91a5cfe + 9c8cbc6 commit 266923e

5 files changed

+29
-6
lines changed

CMakeLists.txt

+13-2
Original file line numberDiff line numberDiff line change
@@ -305,8 +305,7 @@ if(BUILD_JAVA)
305305
OUTPUT ${GENOMICSDB_MAVEN_BUILD_DIR}/genomicsdb-${GENOMICSDB_RELEASE_VERSION}.jar ${GENOMICSDB_MAVEN_BUILD_DIR}/genomicsdb-${GENOMICSDB_RELEASE_VERSION}-jar-with-dependencies.jar
306306
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/pom.xml ${CMAKE_BINARY_DIR}/pom.xml
307307
COMMAND mvn versions:set ${MAVEN_QUIET_ARGS} -DnewVersion=${GENOMICSDB_RELEASE_VERSION} ${MAVEN_PROFILE}
308-
COMMAND mvn package -DskipTests
309-
${MAVEN_ARGS}
308+
COMMAND mvn package -DskipTests ${MAVEN_ARGS}
310309
DEPENDS tiledbgenomicsdb ${JAVA_SCALA_SOURCES} pom.xml
311310
WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
312311
install(FILES ${GENOMICSDB_MAVEN_BUILD_DIR}/genomicsdb-${GENOMICSDB_RELEASE_VERSION}.jar ${GENOMICSDB_MAVEN_BUILD_DIR}/genomicsdb-${GENOMICSDB_RELEASE_VERSION}-jar-with-dependencies.jar DESTINATION bin)
@@ -326,6 +325,18 @@ if(BUILD_JAVA)
326325
INCLUDE_JARS ${GENOMICSDB_MAVEN_BUILD_DIR}/genomicsdb-${GENOMICSDB_RELEASE_VERSION}-jar-with-dependencies.jar
327326
OUTPUT_DIR ${GENOMICSDB_MAVEN_BUILD_DIR})
328327

328+
#Deploy to Maven central
329+
#Cannot specify the jars in the DEPENDS clause. CMake manual specifies, quoting:
330+
#"Do not list the output in more than one independent target that may build in parallel or
331+
#the two instances of the rule may conflict"
332+
#Jars are already listed as dependencies in the add_jar command (-examples)
333+
#So, use the examples target as a dependency for this target
334+
add_custom_target(mvn_central_deploy
335+
COMMAND mvn ${MAVEN_ARGS} deploy
336+
COMMENT "Deploy to Maven central"
337+
)
338+
add_dependencies(mvn_central_deploy genomicsdb-${GENOMICSDB_RELEASE_VERSION}-examples)
339+
329340
add_test(NAME CI_tests
330341
COMMAND /usr/bin/python ${CMAKE_SOURCE_DIR}/tests/run.py
331342
${CMAKE_BINARY_DIR}

cmake/Modules/FindProtobufWrapper.cmake

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ else()
1111
endif()
1212
include(FindPackageHandleStandardArgs)
1313
find_package_handle_standard_args(Protobuf "Could not find Protobuf headers and/or libraries\n${DEFAULT_MSG}" PROTOBUF_INCLUDE_DIRS PROTOBUF_LIBRARIES)
14-
find_program(PROTOBUF_PROTOC_EXECUTABLE NAMES protoc PATHS "${PROTOBUF_LIBRARY}" "${PROTOBUF_LIBRARY}/bin")
14+
find_program(PROTOBUF_PROTOC_EXECUTABLE NAMES protoc PATHS "${PROTOBUF_PROTOC_EXECUTABLE}" "${PROTOBUF_LIBRARY}" "${PROTOBUF_LIBRARY}/bin")
1515
if(PROTOBUF_FOUND)
1616
set(PROTOBUF_LIBRARY ${PROTOBUF_LIBRARIES})
1717
set(PROTOBUF_INCLUDE_DIR ${PROTOBUF_INCLUDE_DIRS})

cmake/Modules/FindRapidJSON.cmake

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,6 @@ if(RAPIDJSON_INCLUDE_DIR)
1010
unset(RAPIDJSON_INCLUDE_DIR CACHE)
1111
endif()
1212
find_path(RAPIDJSON_INCLUDE_DIR NAMES rapidjson/rapidjson.h HINTS "${RAPIDJSON_INCLUDE_DIR_HINT}"
13-
PATHS "${CMAKE_SOURCE_DIR}/dependencies/RapidJSON/include")
13+
PATHS "${CMAKE_SOURCE_DIR}/dependencies/RapidJSON/include" CMAKE_FIND_ROOT_PATH_BOTH)
1414
include(FindPackageHandleStandardArgs)
1515
find_package_handle_standard_args(RapidJSON "Could not find RapidJSON header: rapidjson/rapidjson.h - specify the variable RAPIDJSON_INCLUDE_DIR to point to the directory <RapidJSON>/include" RAPIDJSON_INCLUDE_DIR)

cmake/Modules/FindTileDB.cmake

+5
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,11 @@ if(TILEDB_SOURCE_DIR)
4444
list(APPEND TILEDB_CMAKE_ARGS "-DUSE_OPENMP:BOOL=${TILEDB_USE_OPENMP}")
4545
list(APPEND TILEDB_CMAKE_ARGS "-DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_INSTALL_PREFIX}")
4646

47+
if(CMAKE_TOOLCHAIN_FILE)
48+
list(APPEND TILEDB_CMAKE_ARGS "-DCMAKE_FIND_ROOT_PATH:PATH=${CMAKE_FIND_ROOT_PATH}")
49+
list(APPEND TILEDB_CMAKE_ARGS "-DCMAKE_TOOLCHAIN_FILE:PATH=${CMAKE_TOOLCHAIN_FILE}")
50+
endif()
51+
4752
#Build as external project
4853
include(ExternalProject)
4954
ExternalProject_Add(

cmake/Modules/Findhtslib.cmake

+9-2
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,28 @@ if(HTSLIB_SOURCE_DIR)
1515
if(APPLE AND BUILD_DISTRIBUTABLE_LIBRARY)
1616
set(HTSLIB_EXTRA_CFLAGS -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET})
1717
endif()
18+
#Cross compiling for MacOSX
19+
if((NOT (CMAKE_SYSTEM_NAME STREQUAL CMAKE_HOST_SYSTEM_NAME)) AND APPLE)
20+
set(HTSLIB_OSXCROSS_COMPILE_FLAGS LIBS=${OSXCROSS_LIBS} CPPFLAGS=${OSXCROSS_CPPFLAGS} --host=${CMAKE_SYSTEM_PROCESSOR}-${CMAKE_SYSTEM})
21+
endif()
1822
ExternalProject_Add(
1923
htslib
2024
DOWNLOAD_COMMAND ""
2125
SOURCE_DIR "${HTSLIB_SOURCE_DIR}"
2226
UPDATE_COMMAND "autoreconf"
2327
PATCH_COMMAND ""
2428
CONFIGURE_COMMAND ${HTSLIB_SOURCE_DIR}/configure CFLAGS=${HTSLIB_${CMAKE_BUILD_TYPE}_CFLAGS} LDFLAGS=${HTSLIB_${CMAKE_BUILD_TYPE}_LDFLAGS}
25-
--disable-lzma --disable-bz2 --disable-libcurl
29+
CC=${CMAKE_C_COMPILER} AR=${CMAKE_AR} RANLIB=${CMAKE_RANLIB}
30+
${HTSLIB_OSXCROSS_COMPILE_FLAGS}
31+
--disable-lzma --disable-bz2 --disable-libcurl
2632
BUILD_COMMAND ${CMAKE_COMMAND} -E make_directory cram
2733
COMMAND ${CMAKE_COMMAND} -E make_directory test
2834
COMMAND $(MAKE) -f ${HTSLIB_SOURCE_DIR}/Makefile VPATH=${HTSLIB_SOURCE_DIR} SOURCE_DIR=${HTSLIB_SOURCE_DIR}
35+
AR=${CMAKE_AR}
2936
#BUILD_IN_SOURCE 1
3037
INSTALL_COMMAND ""
3138
)
32-
find_path(HTSLIB_INCLUDE_DIR NAMES htslib/vcf.h HINTS "${HTSLIB_SOURCE_DIR}")
39+
find_path(HTSLIB_INCLUDE_DIR NAMES htslib/vcf.h HINTS "${HTSLIB_SOURCE_DIR}" CMAKE_FIND_ROOT_PATH_BOTH)
3340
ExternalProject_Get_Property(htslib BINARY_DIR)
3441
set(HTSLIB_DIR_IN_BUILD_DIR "${BINARY_DIR}")
3542
set(HTSLIB_LIBRARY "${BINARY_DIR}/libhts.a")

0 commit comments

Comments
 (0)