mirror of
https://git.wownero.com/dsc/openvr.git
synced 2024-08-15 01:03:30 +00:00
116 lines
3.5 KiB
CMake
116 lines
3.5 KiB
CMake
# Project name.
|
|
project(openvr_api)
|
|
|
|
set( LIBNAME "openvr_api" )
|
|
set(OPENVR_HEADER_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../headers)
|
|
|
|
# Set some properies for specific files.
|
|
if(APPLE)
|
|
set(CMAKE_MACOSX_RPATH 1)
|
|
if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
|
|
set_source_files_properties(vrcommon/pathtools_public.cpp vrcommon/vrpathregistry_public.cpp PROPERTIES COMPILE_FLAGS "-x objective-c++")
|
|
endif()
|
|
if(BUILD_SHARED OR BUILD_FRAMEWORK)
|
|
find_library(FOUNDATION_FRAMEWORK Foundation)
|
|
mark_as_advanced(FOUNDATION_FRAMEWORK)
|
|
set(EXTRA_LIBS ${EXTRA_LIBS} ${FOUNDATION_FRAMEWORK})
|
|
endif(BUILD_SHARED OR BUILD_FRAMEWORK)
|
|
elseif(WIN32)
|
|
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
|
add_definitions( -DWIN64 )
|
|
set( LIBNAME "openvr_api64" )
|
|
endif()
|
|
endif()
|
|
|
|
# Add include folders.
|
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/../headers ${CMAKE_CURRENT_SOURCE_DIR}/vrcommon)
|
|
|
|
if(USE_CUSTOM_LIBCXX)
|
|
link_directories(
|
|
${LIBCXX_LIB_DIR}
|
|
)
|
|
endif()
|
|
|
|
# Set the source group and files.
|
|
set(CORE_FILES
|
|
openvr_api_public.cpp
|
|
jsoncpp.cpp
|
|
)
|
|
set(VRCOMMON_FILES
|
|
vrcommon/dirtools_public.cpp
|
|
vrcommon/envvartools_public.cpp
|
|
vrcommon/pathtools_public.cpp
|
|
vrcommon/sharedlibtools_public.cpp
|
|
vrcommon/hmderrors_public.cpp
|
|
vrcommon/vrpathregistry_public.cpp
|
|
vrcommon/strtools_public.cpp
|
|
)
|
|
|
|
set(SOURCE_FILES
|
|
${CORE_FILES}
|
|
${VRCOMMON_FILES}
|
|
)
|
|
|
|
set(PUBLIC_HEADER_FILES
|
|
${OPENVR_HEADER_DIR}/openvr_driver.h
|
|
${OPENVR_HEADER_DIR}/openvr_capi.h
|
|
${OPENVR_HEADER_DIR}/openvr.h
|
|
)
|
|
|
|
source_group("Src" FILES
|
|
${CORE_FILES}
|
|
)
|
|
|
|
source_group("VRCommon" FILES
|
|
${VRCOMMON_FILES}
|
|
)
|
|
|
|
# Build the library.
|
|
if(BUILD_SHARED)
|
|
add_library(${LIBNAME} SHARED ${SOURCE_FILES})
|
|
elseif(BUILD_FRAMEWORK)
|
|
set( LIBNAME "OpenVR" )
|
|
add_library( ${LIBNAME}
|
|
SHARED ${SOURCE_FILES}
|
|
${CMAKE_SOURCE_DIR}/headers/openvr.h
|
|
${CMAKE_SOURCE_DIR}/headers/openvr_api.cs
|
|
${CMAKE_SOURCE_DIR}/headers/openvr_api.json
|
|
${CMAKE_SOURCE_DIR}/headers/openvr_capi.h
|
|
${CMAKE_SOURCE_DIR}/headers/openvr_driver.h
|
|
)
|
|
set_target_properties(OpenVR PROPERTIES
|
|
FRAMEWORK TRUE
|
|
FRAMEWORK_VERSION A
|
|
MACOSX_FRAMEWORK_IDENTIFIER com.valvesoftware.OpenVR.framework
|
|
MACOSX_FRAMEWORK_INFO_PLIST ${CMAKE_SOURCE_DIR}/src/Info.plist
|
|
# "current version" in semantic format in Mach-O binary file
|
|
VERSION 1.0.6
|
|
# "compatibility version" in semantic format in Mach-O binary file
|
|
SOVERSION 1.0.0
|
|
PUBLIC_HEADER "${CMAKE_SOURCE_DIR}/headers/openvr.h;${CMAKE_SOURCE_DIR}/headers/openvr_api.cs;${CMAKE_SOURCE_DIR}/headers/openvr_api.json;${CMAKE_SOURCE_DIR}/headers/openvr_capi.h;${CMAKE_SOURCE_DIR}/headers/openvr_driver.h"
|
|
LINKER_LANGUAGE CXX
|
|
)
|
|
else()
|
|
add_library(${LIBNAME} STATIC ${SOURCE_FILES})
|
|
endif()
|
|
|
|
if(USE_CUSTOM_LIBCXX)
|
|
set(EXTRA_LIBS ${EXTRA_LIBS} c++ c++abi)
|
|
endif()
|
|
|
|
target_link_libraries(${LIBNAME} ${EXTRA_LIBS} ${CMAKE_DL_LIBS})
|
|
target_include_directories(${LIBNAME} PUBLIC ${OPENVR_HEADER_DIR})
|
|
|
|
install(TARGETS ${LIBNAME} DESTINATION lib)
|
|
install(FILES ${PUBLIC_HEADER_FILES} DESTINATION include/openvr)
|
|
|
|
# Generate a .pc file for linux environments
|
|
if(PLATFORM_NAME MATCHES "linux")
|
|
set(INSTALL_PKGCONFIG_DIR "${CMAKE_INSTALL_PREFIX}/share/pkgconfig" CACHE PATH "Installation directory for pkgconfig (.pc) files")
|
|
CONFIGURE_FILE("openvr.pc.in" "openvr.pc" @ONLY)
|
|
|
|
set(OPENVR_PC ${CMAKE_CURRENT_BINARY_DIR}/openvr.pc)
|
|
if(NOT SKIP_INSTALL_FILES AND NOT SKIP_INSTALL_ALL )
|
|
install(FILES ${OPENVR_PC} DESTINATION "${INSTALL_PKGCONFIG_DIR}")
|
|
endif()
|
|
endif()
|