odyssey/cmake/BuildMachinarium.cmake

30 lines
1.5 KiB
CMake
Raw Normal View History

2017-01-12 11:44:48 +00:00
macro(build_machinarium)
2017-01-17 14:14:46 +00:00
set(MACHINARIUM_INCLUDE_DIRS ${PROJECT_SOURCE_DIR}/lib/machinarium/src)
2017-01-12 11:44:48 +00:00
set(MACHINARIUM_OPTS CFLAGS="${CMAKE_C_FLAGS}" LDFLAGS="${CMAKE_SHARED_LINKER_FLAGS}")
separate_arguments(MACHINARIUM_OPTS)
if (${PROJECT_BINARY_DIR} STREQUAL ${PROJECT_SOURCE_DIR})
add_custom_command(
2017-01-17 14:14:46 +00:00
OUTPUT ${PROJECT_BINARY_DIR}/lib/machinarium/src/libmachinarium${CMAKE_SHARED_LIBRARY_SUFFIX}
2017-01-12 11:44:48 +00:00
COMMAND ${CMAKE_COMMAND} ${PROJECT_BINARY_DIR}/lib/machinarium
COMMAND ${CMAKE_MAKE_PROGRAM} ${MACHINARIUM_OPTS} -C ${PROJECT_BINARY_DIR}/lib/machinarium
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/lib/machinarium
)
else()
add_custom_command(
2017-01-17 14:14:46 +00:00
OUTPUT ${PROJECT_BINARY_DIR}/lib/machinarium/src/libmachinarium${CMAKE_SHARED_LIBRARY_SUFFIX}
2017-01-12 11:44:48 +00:00
COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/lib/machinarium
COMMAND ${CMAKE_COMMAND} -E copy_directory ${PROJECT_SOURCE_DIR}/lib/machinarium ${PROJECT_BINARY_DIR}/lib/machinarium
COMMAND cd ${PROJECT_BINARY_DIR}/lib/machinarium && ${CMAKE_COMMAND} .
COMMAND ${CMAKE_MAKE_PROGRAM} ${MACHINARIUM_OPTS} -C ${PROJECT_BINARY_DIR}/lib/machinarium
)
endif()
add_custom_target(libmachinarium ALL
2017-01-17 14:14:46 +00:00
DEPENDS ${PROJECT_BINARY_DIR}/lib/machinarium/src/libmachinarium${CMAKE_SHARED_LIBRARY_SUFFIX}
2017-01-12 11:44:48 +00:00
)
message(STATUS "Use shipped libmachinarium: ${PROJECT_SOURCE_DIR}/lib/machinarium")
2017-01-17 14:14:46 +00:00
set (MACHINARIUM_LIBRARIES "${PROJECT_BINARY_DIR}/lib/machinarium/src/libmachinarium${CMAKE_SHARED_LIBRARY_SUFFIX}")
2017-01-12 11:44:48 +00:00
set (MACHINARIUM_FOUND 1)
add_dependencies(build_libs libmachinarium)
endmacro(build_machinarium)