Files
SimCore/libs/geographiclib/tools/CMakeLists.txt

80 lines
2.5 KiB
CMake

# Build the tools...
# Where to find the *.usage files for the --help option.
if (RELEASE)
set (MANDIR ${PROJECT_SOURCE_DIR}/man)
else ()
set (MANDIR ${PROJECT_BINARY_DIR}/man)
endif ()
include_directories (${MANDIR})
# Only needed if target_compile_definitions is not supported
add_definitions (${PROJECT_DEFINITIONS})
# Loop over all the tools, specifying the source and library.
add_custom_target (tools ALL)
foreach (TOOL ${TOOLS})
add_executable (${TOOL} ${TOOL}.cpp)
if (NOT RELEASE)
add_dependencies (${TOOL} usage)
endif ()
add_dependencies (tools ${TOOL})
set_source_files_properties (${TOOL}.cpp PROPERTIES
OBJECT_DEPENDS ${MANDIR}/${TOOL}.usage)
target_link_libraries (${TOOL} ${PROJECT_LIBRARIES} ${HIGHPREC_LIBRARIES})
endforeach ()
if (MSVC OR CMAKE_CONFIGURATION_TYPES)
# Add _d suffix for your debug versions of the tools
set_target_properties (${TOOLS} PROPERTIES
DEBUG_POSTFIX "${CMAKE_DEBUG_POSTFIX}")
endif ()
if (APPLE AND RELATIVE_LIBDIR)
# Ensure that the package is relocatable
set_target_properties (${TOOLS} PROPERTIES
INSTALL_RPATH "@loader_path/${RELATIVE_LIBDIR}")
endif ()
# Specify where the tools are installed, adding them to the export targets
if (BINDIR)
install (TARGETS ${TOOLS} EXPORT targets DESTINATION ${BINDIR})
endif ()
if (MSVC AND PACKAGE_DEBUG_LIBS)
# Possibly don't EXPORT the debug versions of the tools and then this
# wouldn't be necessary. However, including the debug versions of the
# tools in the installer package is innocuous.
foreach (TOOL ${TOOLS})
install (PROGRAMS
"${PROJECT_BINARY_DIR}/bin/Debug/${TOOL}${CMAKE_DEBUG_POSTFIX}.exe"
DESTINATION bin CONFIGURATIONS Release)
endforeach ()
endif ()
# Put all the tools into a folder in the IDE
set_property (TARGET tools ${TOOLS} PROPERTY FOLDER tools)
# Create the scripts for downloading the data files on non-Windows
# systems. This needs to substitute ${GEOGRAPHICLIB_DATA} as the
# default data directory. These are installed under sbin, because it is
# expected to be run with write access to /usr/local.
if (NOT CMAKE_HOST_WIN32)
foreach (SCRIPT ${SCRIPTS})
configure_file (${SCRIPT}.sh scripts/${SCRIPT} @ONLY)
add_custom_command (OUTPUT ${SCRIPT}
COMMAND ${CMAKE_COMMAND} -E
copy scripts/${SCRIPT} ${SCRIPT} && chmod +x ${SCRIPT}
DEPENDS ${SCRIPT}.sh)
if (SBINDIR)
install (PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${SCRIPT}
DESTINATION ${SBINDIR})
endif ()
endforeach ()
add_custom_target (scripts ALL DEPENDS ${SCRIPTS})
endif ()