Skip to content

Commit fa5fc14

Browse files
committed
Proper linking
1 parent 80c8d15 commit fa5fc14

File tree

1 file changed

+31
-48
lines changed

1 file changed

+31
-48
lines changed

driver_Amethyst/CMakeLists.txt

Lines changed: 31 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,6 @@ if(MSVC)
3434
)
3535
endif()
3636

37-
add_library(${DRIVER_TARGET_NAME} SHARED ${driver_HDR} ${driver_SRC} ${driver_IDL})
38-
target_include_directories(${DRIVER_TARGET_NAME} PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/include")
39-
40-
set_property(TARGET ${DRIVER_TARGET_NAME} PROPERTY CXX_STANDARD 20)
41-
set_property(TARGET ${DRIVER_TARGET_NAME} PROPERTY CXX_STANDARD_REQUIRED ON)
42-
4337
# ----------------------- MinHook support ----------------------
4438
if (WIN32 AND USE_HOOKS)
4539
find_package(minhook CONFIG REQUIRED)
@@ -50,9 +44,6 @@ endif()
5044
# ----------------------- Cap'n Proto --------------------------
5145
find_package(CapnProto CONFIG REQUIRED)
5246

53-
# Link libraries
54-
target_link_libraries(${DRIVER_TARGET_NAME} PRIVATE CapnProto::capnp CapnProto::capnp-rpc CapnProto::kj CapnProto::kj-async)
55-
5647
# Auto-generate sources from rpc/driver.capnp
5748
set(CAPNP_SCHEMA "${CMAKE_CURRENT_SOURCE_DIR}/../vendor/k2vr/driver.capnp")
5849
set(CAPNP_OUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/generated_files/capnp")
@@ -93,13 +84,6 @@ add_custom_command(
9384
VERBATIM
9485
)
9586

96-
# Add generated sources to the target and include directory
97-
add_custom_target(capnp_generated ALL DEPENDS "${CAPNP_GEN_HDR}" "${CAPNP_GEN_SRC}")
98-
add_dependencies(${DRIVER_TARGET_NAME} capnp_generated)
99-
100-
target_sources(${DRIVER_TARGET_NAME} PRIVATE "${CAPNP_GEN_SRC}" "${CAPNP_GEN_HDR}")
101-
target_include_directories(${DRIVER_TARGET_NAME} PRIVATE "${CAPNP_OUT_DIR}")
102-
10387
# Group generated files for IDEs
10488
source_group(TREE "${CAPNP_OUT_DIR}" PREFIX "Generated Files" FILES "${CAPNP_GEN_SRC}" "${CAPNP_GEN_HDR}")
10589
# --------------------------------------------------------------
@@ -109,36 +93,41 @@ set(OPENVR_ROOT "${CMAKE_CURRENT_LIST_DIR}/../vendor/openvr")
10993
set(OPENVR_INCLUDE_DIR "${OPENVR_ROOT}/headers")
11094

11195
if (WIN32)
112-
set(OPENVR_IMPLIB "${OPENVR_ROOT}/lib/win64/openvr_api.lib")
113-
set(OPENVR_RUNTIME "${OPENVR_ROOT}/bin/win64/openvr_api.dll")
114-
add_library(openvr::openvr SHARED IMPORTED)
115-
set_target_properties(openvr::openvr PROPERTIES
116-
IMPORTED_IMPLIB "${OPENVR_IMPLIB}"
117-
IMPORTED_LOCATION "${OPENVR_RUNTIME}"
118-
INTERFACE_INCLUDE_DIRECTORIES "${OPENVR_INCLUDE_DIR}"
119-
)
96+
link_directories("${OPENVR_ROOT}/lib/win64")
97+
link_directories("${OPENVR_ROOT}/bin/win64")
12098
elseif(UNIX AND NOT APPLE)
121-
set(OPENVR_RUNTIME "${OPENVR_ROOT}/lib/linux64/libopenvr_api.so")
122-
add_library(openvr::openvr SHARED IMPORTED)
123-
set_target_properties(openvr::openvr PROPERTIES
124-
IMPORTED_LOCATION "${OPENVR_RUNTIME}"
125-
INTERFACE_INCLUDE_DIRECTORIES "${OPENVR_INCLUDE_DIR}"
126-
)
99+
link_directories("${OPENVR_ROOT}/lib/linux64")
127100
endif()
101+
# --------------------------------------------------------------
128102

129-
if (TARGET openvr::openvr)
130-
target_link_libraries(${DRIVER_TARGET_NAME} PRIVATE openvr::openvr)
131-
target_include_directories(${DRIVER_TARGET_NAME} PRIVATE "${OPENVR_INCLUDE_DIR}")
103+
# -----------------------Main-----------------------------------
104+
add_library(${DRIVER_TARGET_NAME} SHARED ${driver_HDR} ${driver_SRC} ${driver_IDL})
105+
target_include_directories(${DRIVER_TARGET_NAME} PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/include")
132106

133-
add_custom_command(TARGET ${DRIVER_TARGET_NAME} POST_BUILD
134-
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${OPENVR_RUNTIME}" "$<TARGET_FILE_DIR:${DRIVER_TARGET_NAME}>"
135-
VERBATIM)
107+
set_property(TARGET ${DRIVER_TARGET_NAME} PROPERTY CXX_STANDARD 20)
108+
set_property(TARGET ${DRIVER_TARGET_NAME} PROPERTY CXX_STANDARD_REQUIRED ON)
109+
# --------------------------------------------------------------
136110

137-
if (UNIX AND NOT APPLE)
138-
set_target_properties(${DRIVER_TARGET_NAME} PROPERTIES
139-
BUILD_RPATH "$ORIGIN"
140-
INSTALL_RPATH "$ORIGIN")
141-
endif()
111+
# ----------------------- Cap'n Proto --------------------------
112+
# Link libraries
113+
target_link_libraries(${DRIVER_TARGET_NAME} PRIVATE CapnProto::capnp CapnProto::capnp-rpc CapnProto::kj CapnProto::kj-async)
114+
115+
# Add generated sources to the target and include directory
116+
add_custom_target(capnp_generated ALL DEPENDS "${CAPNP_GEN_HDR}" "${CAPNP_GEN_SRC}")
117+
add_dependencies(${DRIVER_TARGET_NAME} capnp_generated)
118+
119+
target_sources(${DRIVER_TARGET_NAME} PRIVATE "${CAPNP_GEN_SRC}" "${CAPNP_GEN_HDR}")
120+
target_include_directories(${DRIVER_TARGET_NAME} PRIVATE "${CAPNP_OUT_DIR}")
121+
# --------------------------------------------------------------
122+
123+
# ----------------------- OpenVR (vendor) ----------------------
124+
target_link_libraries(${DRIVER_TARGET_NAME} PRIVATE openvr_api)
125+
target_include_directories(${DRIVER_TARGET_NAME} PRIVATE "${OPENVR_INCLUDE_DIR}")
126+
127+
if (UNIX AND NOT APPLE)
128+
set_target_properties(${DRIVER_TARGET_NAME} PROPERTIES
129+
BUILD_RPATH "$ORIGIN"
130+
INSTALL_RPATH "$ORIGIN")
142131
endif()
143132
# --------------------------------------------------------------
144133

@@ -186,11 +175,5 @@ else()
186175
VERBATIM
187176
)
188177
endif()
189-
190-
191-
if (TARGET openvr::openvr)
192-
add_custom_command(TARGET ${DRIVER_TARGET_NAME} POST_BUILD
193-
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${OPENVR_RUNTIME}" "${PACK_BIN_DIR}"
194-
VERBATIM)
195-
endif()
196178
# --------------------------------------------------------------
179+

0 commit comments

Comments
 (0)