Skip to content

Commit e07b9a8

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

1 file changed

Lines changed: 10 additions & 18 deletions

File tree

driver/CMakeLists.txt

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ if (LPAC_WITH_APDU_PCSC)
6363
find_package(PCSCLite REQUIRED)
6464
target_link_libraries(driver_apdu_pcsc PRIVATE PCSCLite::PCSCLite)
6565
endif ()
66-
list(APPEND LPAC_DRIVERS "driver_apdu_pcsc")
66+
install(TARGETS driver_apdu_pcsc LIBRARY DESTINATION ${DRIVER_INSTALL_PATH})
6767
endif ()
6868

6969
if (LPAC_WITH_APDU_AT)
@@ -78,7 +78,7 @@ if (LPAC_WITH_APDU_AT)
7878
else ()
7979
message(FATAL_ERROR "LPAC_WITH_APDU_AT is only supported on Unix and Windows platforms.")
8080
endif ()
81-
list(APPEND LPAC_DRIVERS "driver_apdu_at")
81+
install(TARGETS driver_apdu_at LIBRARY DESTINATION ${DRIVER_INSTALL_PATH})
8282
endif ()
8383

8484
if(LPAC_WITH_APDU_GBINDER)
@@ -89,7 +89,7 @@ if(LPAC_WITH_APDU_GBINDER)
8989
pkg_check_modules(GBINDER REQUIRED IMPORTED_TARGET libgbinder)
9090
pkg_check_modules(GLIB REQUIRED IMPORTED_TARGET glib-2.0)
9191
target_link_libraries(driver_apdu_gbinder PRIVATE PkgConfig::GBINDER PkgConfig::GLIB)
92-
list(APPEND LPAC_DRIVERS "driver_apdu_gbinder")
92+
install(TARGETS driver_apdu_gbinder LIBRARY DESTINATION ${DRIVER_INSTALL_PATH})
9393
endif()
9494

9595
if (LPAC_WITH_APDU_QMI OR LPAC_WITH_APDU_QMI_QRTR)
@@ -101,27 +101,24 @@ if (LPAC_WITH_APDU_QMI OR LPAC_WITH_APDU_QMI_QRTR)
101101
find_package(PkgConfig REQUIRED)
102102
pkg_check_modules(QMI_GLIB REQUIRED IMPORTED_TARGET qmi-glib>=1.36.0)
103103
target_link_libraries(qmi_common PRIVATE PkgConfig::QMI_GLIB)
104-
105-
# FIXME: Although it's not actual driver, but we need it to avoid strange undefined symbol.
106-
list(APPEND LPAC_DRIVERS "qmi_common")
107104
endif ()
108105

109106
if (LPAC_WITH_APDU_QMI)
110107
add_library(driver_apdu_qmi SHARED ${CMAKE_CURRENT_SOURCE_DIR}/apdu/qmi.c)
111-
target_link_libraries(driver_apdu_qmi PRIVATE euicc-drivers qmi_common)
108+
target_link_libraries(driver_apdu_qmi PRIVATE euicc-drivers qmi_common lpac-utils)
112109
set_target_properties(driver_apdu_qmi PROPERTIES PREFIX "")
113110
target_compile_definitions(qmi_common PRIVATE LPAC_WITH_DRIVER_APDU_QMI)
114111
target_compile_definitions(driver_apdu_qmi PRIVATE LPAC_WITH_DRIVER_APDU_QMI)
115-
list(APPEND LPAC_DRIVERS "driver_apdu_qmi")
112+
install(TARGETS driver_apdu_qmi LIBRARY DESTINATION ${DRIVER_INSTALL_PATH})
116113
endif ()
117114

118115
if (LPAC_WITH_APDU_QMI_QRTR)
119116
add_library(driver_apdu_qmi_qrtr SHARED ${CMAKE_CURRENT_SOURCE_DIR}/apdu/qmi_qrtr.c)
120-
target_link_libraries(driver_apdu_qmi_qrtr PRIVATE euicc-drivers qmi_common)
117+
target_link_libraries(driver_apdu_qmi_qrtr PRIVATE euicc-drivers qmi_common lpac-utils)
121118
set_target_properties(driver_apdu_qmi_qrtr PROPERTIES PREFIX "")
122119
target_compile_definitions(qmi_common PRIVATE LPAC_WITH_DRIVER_APDU_QMI_QRTR)
123120
target_compile_definitions(driver_apdu_qmi_qrtr PRIVATE LPAC_WITH_DRIVER_APDU_QMI_QRTR)
124-
list(APPEND LPAC_DRIVERS "driver_apdu_qmi_qrtr")
121+
install(TARGETS driver_apdu_qmi_qrtr LIBRARY DESTINATION ${DRIVER_INSTALL_PATH})
125122
endif ()
126123

127124
if (LPAC_WITH_APDU_MBIM)
@@ -135,7 +132,7 @@ if (LPAC_WITH_APDU_MBIM)
135132
pkg_check_modules(MBIM_GLIB REQUIRED IMPORTED_TARGET mbim-glib>=1.26.0)
136133
target_link_libraries(driver_apdu_mbim PRIVATE PkgConfig::MBIM_GLIB PkgConfig::MBIM_GLIB)
137134

138-
list(APPEND LPAC_DRIVERS "driver_apdu_mbim")
135+
install(TARGETS driver_apdu_mbim LIBRARY DESTINATION ${DRIVER_INSTALL_PATH})
139136
endif ()
140137

141138
if(LPAC_WITH_HTTP_CURL)
@@ -148,21 +145,16 @@ if(LPAC_WITH_HTTP_CURL)
148145
find_package(CURL REQUIRED)
149146
target_link_libraries(driver_http_curl PRIVATE curl)
150147
endif()
151-
list(APPEND LPAC_DRIVERS "driver_http_curl")
148+
install(TARGETS driver_http_curl LIBRARY DESTINATION ${DRIVER_INSTALL_PATH})
152149
endif()
153150

154151
if (LPAC_WITH_HTTP_WINHTTP)
155152
add_library(driver_http_winhttp SHARED ${CMAKE_CURRENT_SOURCE_DIR}/http/winhttp.c)
156153
target_link_libraries(driver_http_winhttp PRIVATE winhttp euicc euicc-drivers lpac-utils)
157154
set_target_properties(driver_http_winhttp PROPERTIES PREFIX "")
158-
list(APPEND LPAC_DRIVERS "driver_http_winhttp")
155+
install(TARGETS driver_http_winhttp LIBRARY DESTINATION ${DRIVER_INSTALL_PATH})
159156
endif ()
160157

161-
foreach(driver ${LPAC_DRIVERS})
162-
install(TARGETS ${driver} LIBRARY DESTINATION ${DRIVER_INSTALL_PATH})
163-
endforeach()
164-
165-
166158
# Install a pkg-config file (mainly for Linux; macOS is untested; Win32 is not supported)
167159
if(UNIX AND NOT STANDALONE_MODE)
168160
list(APPEND LIBEUICC_DRIVER_LOADER_REQUIRES "libeuicc = ${PROJECT_VERSION}")

0 commit comments

Comments
 (0)