OsmAnd/OsmAnd-java/CMakeLists.txt

98 lines
2.7 KiB
Text
Raw Normal View History

2013-08-07 21:34:30 +02:00
project(OsmAndJNI)
set(target_specific_private_includes "")
2013-08-08 07:09:04 +02:00
set(target_specific_public_libraries "")
2013-08-07 21:34:30 +02:00
if(CMAKE_TARGET_OS STREQUAL "windows")
set(target_specific_private_includes ${target_specific_private_includes}
"$ENV{JAVA_HOME}/include/win32"
)
elseif(CMAKE_TARGET_OS STREQUAL "darwin")
set(target_specific_private_includes ${target_specific_private_includes}
"$ENV{JAVA_HOME}/include/darwin"
)
elseif(CMAKE_TARGET_OS STREQUAL "linux")
set(target_specific_private_includes ${target_specific_private_includes}
"$ENV{JAVA_HOME}/include/linux"
)
endif()
2013-08-18 21:43:29 +02:00
file(GLOB_RECURSE core_includes "${OSMAND_ROOT}/core/include/*.h*")
file(GLOB_RECURSE core_headers "${OSMAND_ROOT}/core/src/*.h*")
file(GLOB_RECURSE core_sources "${OSMAND_ROOT}/core/src/*.c*")
file(GLOB_RECURSE core_headers_client "${OSMAND_ROOT}/core/client/*.h*")
file(GLOB_RECURSE core_sources_client "${OSMAND_ROOT}/core/client/*.c*")
2013-08-19 06:51:24 +02:00
file(GLOB_RECURSE core_swig "${OSMAND_ROOT}/swig/*")
2013-08-18 20:55:32 +02:00
if(CMAKE_HOST_WIN32 AND NOT CYGWIN)
add_custom_command(OUTPUT "${CMAKE_CURRENT_LIST_DIR}/c-src/swig.cpp"
COMMAND bash ARGS --login "${CMAKE_CURRENT_LIST_DIR}/generate-swig.sh"
2013-08-18 21:43:29 +02:00
DEPENDS
${core_includes}
${core_headers}
${core_sources}
${core_headers_client}
${core_sources_client}
2013-08-19 06:51:24 +02:00
"${OSMAND_ROOT}/core/core.swig"
${core_swig}
2013-08-18 20:55:32 +02:00
COMMENT "Generating sources...")
else()
add_custom_command(OUTPUT "${CMAKE_CURRENT_LIST_DIR}/c-src/swig.cpp"
COMMAND "${CMAKE_CURRENT_LIST_DIR}/generate-swig.sh"
2013-08-18 21:43:29 +02:00
DEPENDS
${core_includes}
${core_headers}
${core_sources}
${core_headers_client}
${core_sources_client}
2013-08-19 06:51:24 +02:00
"${OSMAND_ROOT}/core/core.swig"
${core_swig}
2013-08-18 20:55:32 +02:00
COMMENT "Generating sources...")
endif()
2013-08-18 21:43:29 +02:00
add_custom_target(OsmAndJNI_generate_swig
ALL
DEPENDS
"${CMAKE_CURRENT_LIST_DIR}/c-src/swig.cpp"
)
2013-08-18 20:55:32 +02:00
set_source_files_properties("${CMAKE_CURRENT_LIST_DIR}/c-src/swig.cpp" PROPERTIES GENERATED TRUE)
2013-08-07 21:34:30 +02:00
if(CMAKE_SHARED_LIBS_ALLOWED_ON_TARGET)
add_library(OsmAndJNI SHARED
"c-src/swig.cpp"
)
target_compile_definitions(OsmAndJNI
PRIVATE
-DOSMAND_CORE_EXPORTS
)
target_include_directories(OsmAndJNI
PRIVATE
"$ENV{JAVA_HOME}/include"
${target_specific_private_includes}
)
2013-08-18 20:55:32 +02:00
add_dependencies(OsmAndJNI
2013-08-18 21:43:29 +02:00
OsmAndJNI_generate_swig
2013-08-18 20:55:32 +02:00
)
2013-08-07 21:34:30 +02:00
if(CMAKE_STATIC_LIBS_ALLOWED_ON_TARGET)
add_dependencies(OsmAndJNI
OsmAndCore_static
OsmAndCoreUtils_static
)
target_link_libraries(OsmAndJNI
LINK_PUBLIC
OsmAndCore_static
OsmAndCoreUtils_static
2013-08-08 07:11:00 +02:00
${target_specific_public_libraries}
2013-08-07 21:34:30 +02:00
)
else()
add_dependencies(OsmAndJNI
OsmAndCore_shared
OsmAndCoreUtils_shared
)
target_link_libraries(OsmAndJNI
LINK_PUBLIC
OsmAndCore_shared
OsmAndCoreUtils_shared
2013-08-08 07:09:04 +02:00
${target_specific_public_libraries}
2013-08-07 21:34:30 +02:00
)
endif()
2013-08-08 07:09:04 +02:00
endif()