IPBS_Station/SDK/CMakeLists.txt
2025-09-05 08:44:30 +08:00

123 lines
5.0 KiB
CMake

cmake_minimum_required(VERSION 3.0)
add_subdirectory(Depend/portaudio)
add_subdirectory(Depend/CSerialPort)
add_subdirectory(Depend/mirrors_nlohmann_json)
add_subdirectory(Depend/cppp-reiconv)
add_subdirectory(Environment)
find_path(MYSQL_ROOT_DIR ${PROJECT_SOURCE_DIR}/SDK/Depend/mysql-9.0.1)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(mysql REQUIRED_VARS MYSQL_ROOT_DIR)
set(INC_DIR ${PROJECT_SOURCE_DIR}/SDK/CCServlet/include)
set(LINK_DIR ${PROJECT_SOURCE_DIR}/SDK/Depend/Lib/libs)
set(LINK_DLL_DIR ${PROJECT_SOURCE_DIR}/SDK/Depend/Bin/bin)
set(CC_API_INC ${PROJECT_SOURCE_DIR}/SDK/Depend/CSerialPort/include
${PROJECT_SOURCE_DIR}/SDK/Depend/mirrors_nlohmann_json/include
${PROJECT_SOURCE_DIR}/SDK/Depend/mirrors_nlohmann_json/include/nlohmann
${PROJECT_SOURCE_DIR}/SDK/Depend/portaudio/include
${PROJECT_SOURCE_DIR}/SDK/Multimedia
${PROJECT_SOURCE_DIR}/SDK/CCServlet/SQL
${PROJECT_SOURCE_DIR}/SDK/CCServlet/include
${PROJECT_SOURCE_DIR}/SDK/CCServlet/SQL include
${PROJECT_SOURCE_DIR}/SDK/Environment/IMUI/Control
${PROJECT_SOURCE_DIR}/SDK/Environment/IMUI/Drive
${PROJECT_SOURCE_DIR}/SDK/Environment/IMUI/ImGui
${PROJECT_SOURCE_DIR}/SDK/Environment/IMUI/WindowOS
${PROJECT_SOURCE_DIR}/SDK/Environment/glfw/include
${INC_DIR}
${PROJECT_SOURCE_DIR}/SDK/Depend/mysql-9.0.1/include
)
option(UIAPIS "APIS" ON)
if (UIAPIS)
add_library(CC_API
STATIC
src/CCThread.cpp
src/CCSocket.cpp
src/CCString.cpp
src/CCSerialPort.cpp
src/CCAudio.cpp
src/CCThreadPool.cpp
include/CCThreadPool.h
src/CCJSONObject.cpp
include/CCJSONObject.h
src/CCFile.cpp
CCServlet/src/CCWebServlet.cpp
CCServlet/include/CCWebServlet.h
CCServlet/src/CCResponse.cpp
CCServlet/include/CCResponse.h
CCServlet/src/CCRequest.cpp
CCServlet/include/CCRequest.h
CCServlet/include/CORS.h
CCServlet/src/CCSQLite3.cpp
CCServlet/include/CCSQLite3.h
src/CCEpoll.cpp
src/CCByte.cpp
include/CCEpoll.h
include/CCObject.h
src/CCFileOutStream.cpp
src/CCEncode.cpp
include/CCFileOutStream.h
src/CCByteArray.cpp
include/CCByteArray.h
src/CCFIleInStream.cpp
include/CCFIleInStream.h
include/CC.h
src/CCNetwork.cpp
include/CCNetwork.h
src/CCTimeData.cpp
include/CCTimeData.h
src/CCMySql.cpp
include/CCMySql.h
include/CCArray.h
CCServlet/src/CCWebSocketInfo.cpp
CCServlet/include/CCWebSocketInfo.h
src/CCProcess.cpp
include/CCProcess.h
CCServlet/src/CCHttpClient.cpp
)
target_include_directories(CC_API PUBLIC
${PROJECT_SOURCE_DIR}/SDK/Depend/CSerialPort/include
${PROJECT_SOURCE_DIR}/SDK/Depend/mirrors_nlohmann_json/include
${PROJECT_SOURCE_DIR}/SDK/Depend/mirrors_nlohmann_json/include/nlohmann
${PROJECT_SOURCE_DIR}/SDK/Depend/portaudio/include
${PROJECT_SOURCE_DIR}/SDK/Multimedia
${PROJECT_SOURCE_DIR}/SDK/CCServlet/SQL
${PROJECT_SOURCE_DIR}/SDK/CCServlet/include
${PROJECT_SOURCE_DIR}/SDK/CCServlet/SQL include
${PROJECT_SOURCE_DIR}/SDK/Environment/IMUI/Control
${PROJECT_SOURCE_DIR}/SDK/Environment/IMUI/Drive
${PROJECT_SOURCE_DIR}/SDK/Environment/IMUI/ImGui
${PROJECT_SOURCE_DIR}/SDK/Environment/IMUI/WindowOS
${PROJECT_SOURCE_DIR}/SDK/Environment/glfw/include
${INC_DIR}
${PROJECT_SOURCE_DIR}/SDK/Depend/mysql-9.0.1/include/
)
if(CMAKE_HOST_UNIX)
target_link_libraries(CC_API PRIVATE libcserialport sqlite3 nlohmann_json PortAudio
${CMAKE_CURRENT_SOURCE_DIR}/Depend/Lib/libs/x86_64/libbass.so
${LINK_DIR}/libcppp-reiconv.static.a
GUIAPI crypto
# ${PROJECT_SOURCE_DIR}/SDK/Depend/mysql-9.0.1/lib/LinuxLib/libmysqlclient.so
${PROJECT_SOURCE_DIR}/SDK/Depend/mysql-9.0.1/lib/LinuxLib/libmysqlcppconn.so
${PROJECT_SOURCE_DIR}/SDK/Depend/mysql-9.0.1/lib/LinuxLib/libmysqlcppconnx.so
)
elseif(CMAKE_HOST_WIN32)
target_link_libraries(CC_API PRIVATE ws2_32 libcserialport
nlohmann_json
${CMAKE_CURRENT_SOURCE_DIR}/Depend/Bin/bin/sqlite3.dll PortAudio
${CMAKE_CURRENT_SOURCE_DIR}/Depend/Lib/libs/x86_64/bass.lib
GUIAPI
${LINK_DIR}/VC/X64/MD/openssl.lib
${LINK_DIR}/VC/X64/MD/libcrypto.lib
${LINK_DIR}/libcppp-reiconv.static-win.a
${PROJECT_SOURCE_DIR}/SDK/Depend/mysql-9.0.1/lib/libmysql.lib
)
else()
endif()
endif(UIAPIS)