cmake: adjust installation targets. windows outputs dll libraries to bin folder; guards for FindDotnet; install pdbs;

This commit is contained in:
Yatao Li 2018-09-08 19:20:40 +08:00
Родитель 86eb3d83ae
Коммит 0c45d15fac
5 изменённых файлов: 28 добавлений и 20 удалений

Просмотреть файл

@ -3,17 +3,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 3.0.0)
LIST(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")
FIND_PACKAGE(Dotnet 2.0 REQUIRED)
INCLUDE(PostBuild)
EXECUTE_PROCESS(
COMMAND ${DOTNET_EXE} help # to avoid "FIRST RUN EXPERIENCE" leaking into our version string
OUTPUT_QUIET
ERROR_QUIET)
EXECUTE_PROCESS(
COMMAND ${DOTNET_EXE} run -p ${CMAKE_CURRENT_LIST_DIR}/tools/versioning/versioning.csproj
OUTPUT_VARIABLE TRINITY_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
SET(TRINITY_VERSION "2.0.${TRINITY_VERSION}")
MESSAGE("-- GraphEngine version is now ${TRINITY_VERSION}")
INCLUDE(TrinityVersion)
PROJECT(GraphEngine VERSION ${TRINITY_VERSION} LANGUAGES CXX)

Просмотреть файл

@ -58,6 +58,10 @@
CMAKE_MINIMUM_REQUIRED(VERSION 3.5.0)
IF(DOTNET_FOUND)
RETURN()
ENDIF()
SET(NUGET_CACHE_PATH "~/.nuget/packages")
FIND_PROGRAM(DOTNET_EXE dotnet)
SET(DOTNET_MODULE_DIR ${CMAKE_CURRENT_LIST_DIR})
@ -73,9 +77,6 @@ EXECUTE_PROCESS(
OUTPUT_STRIP_TRAILING_WHITESPACE
)
MESSAGE("-- Found .NET toolchain: ${DOTNET_EXE} (version ${DOTNET_VERSION})")
SET(DOTNET_FOUND TRUE)
IF(WIN32)
FIND_PROGRAM(NUGET_EXE nuget PATHS ${CMAKE_BINARY_DIR}/tools)
IF(NUGET_EXE)
@ -298,3 +299,6 @@ FUNCTION(RUN_DOTNET DOTNET_PROJECT)
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${DOTNET_PROJNAME}.runtimestamp ${DOTNET_RUN_OUTPUT})
ADD_DEPENDENCIES(RUN_${DOTNET_PROJNAME} BUILD_${DOTNET_PROJNAME})
ENDFUNCTION()
MESSAGE("-- Found .NET toolchain: ${DOTNET_EXE} (version ${DOTNET_VERSION})")
SET(DOTNET_FOUND TRUE)

Просмотреть файл

@ -44,27 +44,28 @@ ENDFUNCTION()
FUNCTION(POSTBUILD_XPLAT_OUTPUT target xplat_dir)
GET_TARGET_PROPERTY(target_type ${target} TYPE)
# for windows builds, always output dlls to bin/ path.
# this makes it easier to load them at runtime.
IF(target_type STREQUAL "EXECUTABLE")
INSTALL(TARGETS ${target} RUNTIME DESTINATION bin)
IF(UNIX)
POSTBUILD_COPY_OUTPUT(${target} "${xplat_dir}/${target}.exe" RUNTIME)
INSTALL(FILES ${xplat_dir}/${target}.exe DESTINATION bin)
ELSEIF(WIN32)
POSTBUILD_COPY_OUTPUT(${target} "${xplat_dir}/${target}" RUNTIME)
INSTALL(FILES ${xplat_dir}/${target} DESTINATION bin)
INSTALL(FILES ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}/${target}.pdb DESTINATION bin)
ENDIF()
ELSEIF(target_type STREQUAL "SHARED_LIBRARY")
INSTALL(TARGETS ${target} DESTINATION lib)
IF(UNIX)
POSTBUILD_COPY_OUTPUT(${target} "${xplat_dir}/${target}.dll" LIBRARY)
POSTBUILD_COPY_OUTPUT(${target} "${xplat_dir}/${target}.lib" LIBRARY)
INSTALL(FILES ${xplat_dir}/${target}.dll DESTINATION lib)
INSTALL(TARGETS ${target} DESTINATION lib)
ELSEIF(WIN32)
POSTBUILD_COPY_OUTPUT(${target} "${xplat_dir}/lib${target}.so" LIBRARY)
INSTALL(FILES ${xplat_dir}/lib${target}.so DESTINATION lib)
INSTALL(TARGETS ${target} DESTINATION bin)
INSTALL(FILES ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}/${target}.pdb DESTINATION bin)
ENDIF()
ELSE()

Просмотреть файл

@ -0,0 +1,14 @@
IF(${TRINITY_VERSION})
RETURN()
ENDIF()
EXECUTE_PROCESS(
COMMAND ${DOTNET_EXE} help # to avoid "FIRST RUN EXPERIENCE" leaking into our version string
OUTPUT_QUIET
ERROR_QUIET)
EXECUTE_PROCESS(
COMMAND ${DOTNET_EXE} run -p ${CMAKE_CURRENT_LIST_DIR}/../tools/versioning/versioning.csproj
OUTPUT_VARIABLE TRINITY_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
SET(TRINITY_VERSION "2.0.${TRINITY_VERSION}")
MESSAGE("-- GraphEngine version is now ${TRINITY_VERSION}")

Просмотреть файл

@ -11,4 +11,3 @@ ENDIF()
ADD_LIBRARY(Trinity.TSL.Parser ${parser_srcs})
TARGET_LINK_LIBRARIES(Trinity.TSL.Parser PRIVATE Trinity.BCL)
TARGET_INCLUDE_DIRECTORIES(Trinity.TSL.Parser PUBLIC ${CMAKE_CURRENT_LIST_DIR})
INSTALL(TARGETS Trinity.TSL.Parser ARCHIVE DESTINATION lib)