80 lines
2.5 KiB
CMake
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 ()
|