cmake: adjust installation targets. windows outputs dll libraries to bin folder; guards for FindDotnet; install pdbs;
This commit is contained in:
Родитель
86eb3d83ae
Коммит
0c45d15fac
|
@ -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)
|
||||
|
|
Загрузка…
Ссылка в новой задаче