Skip to content

Commit b003d38

Browse files
refactor(driver): decouple the driver and loader CMake logic
Signed-off-by: Coelacanthus <uwu@coelacanthus.name>
1 parent 00cf0f0 commit b003d38

1 file changed

Lines changed: 12 additions & 20 deletions

File tree

driver/CMakeLists.txt

Lines changed: 12 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ if (LPAC_WITH_APDU_PCSC)
6464
find_package(PCSCLite REQUIRED)
6565
target_link_libraries(driver_apdu_pcsc PRIVATE PCSCLite::PCSCLite)
6666
endif ()
67-
list(APPEND LPAC_DRIVERS "driver_apdu_pcsc")
67+
install(TARGETS driver_apdu_pcsc LIBRARY DESTINATION ${DRIVER_INSTALL_PATH})
6868
endif ()
6969

7070
if (LPAC_WITH_APDU_AT)
@@ -79,7 +79,7 @@ if (LPAC_WITH_APDU_AT)
7979
else ()
8080
message(FATAL_ERROR "LPAC_WITH_APDU_AT is only supported on Unix and Windows platforms.")
8181
endif ()
82-
list(APPEND LPAC_DRIVERS "driver_apdu_at")
82+
install(TARGETS driver_apdu_at LIBRARY DESTINATION ${DRIVER_INSTALL_PATH})
8383
endif ()
8484

8585
if(LPAC_WITH_APDU_GBINDER)
@@ -90,7 +90,7 @@ if(LPAC_WITH_APDU_GBINDER)
9090
pkg_check_modules(GBINDER REQUIRED IMPORTED_TARGET libgbinder)
9191
pkg_check_modules(GLIB REQUIRED IMPORTED_TARGET glib-2.0)
9292
target_link_libraries(driver_apdu_gbinder PRIVATE PkgConfig::GBINDER PkgConfig::GLIB)
93-
list(APPEND LPAC_DRIVERS "driver_apdu_gbinder")
93+
install(TARGETS driver_apdu_gbinder LIBRARY DESTINATION ${DRIVER_INSTALL_PATH})
9494
endif()
9595

9696
if (LPAC_WITH_APDU_QMI OR LPAC_WITH_APDU_QMI_QRTR)
@@ -101,28 +101,25 @@ if (LPAC_WITH_APDU_QMI OR LPAC_WITH_APDU_QMI_QRTR)
101101

102102
find_package(PkgConfig REQUIRED)
103103
pkg_check_modules(QMI_GLIB REQUIRED IMPORTED_TARGET qmi-glib>=1.36.0)
104-
target_link_libraries(qmi_common PRIVATE PkgConfig::QMI_GLIB)
105-
106-
# FIXME: Although it's not actual driver, but we need it to avoid strange undefined symbol.
107-
list(APPEND LPAC_DRIVERS "qmi_common")
104+
target_link_libraries(qmi_common PUBLIC PkgConfig::QMI_GLIB)
108105
endif ()
109106

110107
if (LPAC_WITH_APDU_QMI)
111108
add_library(driver_apdu_qmi SHARED ${CMAKE_CURRENT_SOURCE_DIR}/apdu/qmi.c)
112-
target_link_libraries(driver_apdu_qmi PRIVATE euicc-drivers qmi_common)
109+
target_link_libraries(driver_apdu_qmi PRIVATE cjson euicc euicc-drivers qmi_common lpac-utils)
113110
set_target_properties(driver_apdu_qmi PROPERTIES PREFIX "")
114111
target_compile_definitions(qmi_common PRIVATE LPAC_WITH_DRIVER_APDU_QMI)
115112
target_compile_definitions(driver_apdu_qmi PRIVATE LPAC_WITH_DRIVER_APDU_QMI)
116-
list(APPEND LPAC_DRIVERS "driver_apdu_qmi")
113+
install(TARGETS driver_apdu_qmi LIBRARY DESTINATION ${DRIVER_INSTALL_PATH})
117114
endif ()
118115

119116
if (LPAC_WITH_APDU_QMI_QRTR)
120117
add_library(driver_apdu_qmi_qrtr SHARED ${CMAKE_CURRENT_SOURCE_DIR}/apdu/qmi_qrtr.c)
121-
target_link_libraries(driver_apdu_qmi_qrtr PRIVATE euicc-drivers qmi_common)
118+
target_link_libraries(driver_apdu_qmi_qrtr PRIVATE cjson euicc euicc-drivers qmi_common lpac-utils)
122119
set_target_properties(driver_apdu_qmi_qrtr PROPERTIES PREFIX "")
123120
target_compile_definitions(qmi_common PRIVATE LPAC_WITH_DRIVER_APDU_QMI_QRTR)
124121
target_compile_definitions(driver_apdu_qmi_qrtr PRIVATE LPAC_WITH_DRIVER_APDU_QMI_QRTR)
125-
list(APPEND LPAC_DRIVERS "driver_apdu_qmi_qrtr")
122+
install(TARGETS driver_apdu_qmi_qrtr LIBRARY DESTINATION ${DRIVER_INSTALL_PATH})
126123
endif ()
127124

128125
if (LPAC_WITH_APDU_UQMI)
@@ -138,7 +135,7 @@ if (LPAC_WITH_APDU_UQMI)
138135
target_compile_definitions(driver_apdu_uqmi PRIVATE HAVE_PIDFD)
139136
endif ()
140137

141-
list(APPEND LPAC_DRIVERS "driver_apdu_uqmi")
138+
install(TARGETS driver_apdu_uqmi LIBRARY DESTINATION ${DRIVER_INSTALL_PATH})
142139
endif ()
143140

144141
if (LPAC_WITH_APDU_MBIM)
@@ -152,7 +149,7 @@ if (LPAC_WITH_APDU_MBIM)
152149
pkg_check_modules(MBIM_GLIB REQUIRED IMPORTED_TARGET mbim-glib>=1.26.0)
153150
target_link_libraries(driver_apdu_mbim PRIVATE PkgConfig::MBIM_GLIB PkgConfig::MBIM_GLIB)
154151

155-
list(APPEND LPAC_DRIVERS "driver_apdu_mbim")
152+
install(TARGETS driver_apdu_mbim LIBRARY DESTINATION ${DRIVER_INSTALL_PATH})
156153
endif ()
157154

158155
if(LPAC_WITH_HTTP_CURL)
@@ -165,21 +162,16 @@ if(LPAC_WITH_HTTP_CURL)
165162
find_package(CURL REQUIRED)
166163
target_link_libraries(driver_http_curl PRIVATE curl)
167164
endif()
168-
list(APPEND LPAC_DRIVERS "driver_http_curl")
165+
install(TARGETS driver_http_curl LIBRARY DESTINATION ${DRIVER_INSTALL_PATH})
169166
endif()
170167

171168
if (LPAC_WITH_HTTP_WINHTTP)
172169
add_library(driver_http_winhttp SHARED ${CMAKE_CURRENT_SOURCE_DIR}/http/winhttp.c)
173170
target_link_libraries(driver_http_winhttp PRIVATE winhttp euicc euicc-drivers lpac-utils)
174171
set_target_properties(driver_http_winhttp PROPERTIES PREFIX "")
175-
list(APPEND LPAC_DRIVERS "driver_http_winhttp")
172+
install(TARGETS driver_http_winhttp LIBRARY DESTINATION ${DRIVER_INSTALL_PATH})
176173
endif ()
177174

178-
foreach(driver ${LPAC_DRIVERS})
179-
install(TARGETS ${driver} LIBRARY DESTINATION ${DRIVER_INSTALL_PATH})
180-
endforeach()
181-
182-
183175
# Install a pkg-config file (mainly for Linux; macOS is untested; Win32 is not supported)
184176
if(UNIX AND NOT STANDALONE_MODE)
185177
list(APPEND LIBEUICC_DRIVER_LOADER_REQUIRES "libeuicc = ${PROJECT_VERSION}")

0 commit comments

Comments
 (0)