@@ -26,24 +26,14 @@ endif()
2626set (USE_GUI ON )
2727set (USE_SQLITE ON )
2828set (USE_QR ON )
29+ set (USE_MYSQL OFF )
2930
3031find_package (PkgConfig REQUIRED )
3132find_package (SDL2 REQUIRED )
3233pkg_check_modules (SQLITE3 REQUIRED sqlite3 )
3334pkg_check_modules (MYSQL mysqlclient )
3435pkg_check_modules (QRENCODE REQUIRED IMPORTED_TARGET libqrencode )
3536
36- # MySQL: optional. Enable with -DUSE_MYSQL=ON if mysqlclient include path works.
37- if (MYSQL_FOUND AND USE_MYSQL)
38- message (STATUS "Building with MySQL support" )
39- else ()
40- set (USE_MYSQL OFF )
41- if (MYSQL_FOUND)
42- message (STATUS "MySQL found but disabled (set -DUSE_MYSQL=ON to enable)" )
43- else ()
44- message (STATUS "MySQL not found; building without MySQL support" )
45- endif ()
46- endif ()
4737
4838configure_file (config.h.in ${CMAKE_BINARY_DIR } /config.h )
4939
@@ -66,21 +56,19 @@ set(SOURCES
6656
6757add_executable (${PROJECT_NAME } ${SOURCES} )
6858
69- target_include_directories ( ${ PROJECT_NAME } PRIVATE
70- src
71- src/core
72- src/http
73- src/mysql
74- src/sqlite
75- src/gui
76- src/qr
59+ set (MELT_INCLUDE_HEADERS
60+ ${ CMAKE_CURRENT_SOURCE_DIR } / src
61+ ${ CMAKE_CURRENT_SOURCE_DIR } / src/core
62+ ${ CMAKE_CURRENT_SOURCE_DIR } / src/http
63+ ${ CMAKE_CURRENT_SOURCE_DIR } / src/mysql
64+ ${ CMAKE_CURRENT_SOURCE_DIR } / src/sqlite
65+ ${ CMAKE_CURRENT_SOURCE_DIR } / src/gui
66+ ${ CMAKE_CURRENT_SOURCE_DIR } / src/qr
7767 ${SQLITE3_INCLUDE_DIRS}
7868 ${CMAKE_BINARY_DIR }
7969 ${SDL2_INCLUDE_DIRS}
8070)
81- if (USE_MYSQL)
82- target_include_directories (${PROJECT_NAME } PRIVATE ${MYSQL_INCLUDE_DIRS} )
83- endif ()
71+ target_include_directories (${PROJECT_NAME } PRIVATE ${MELT_INCLUDE_HEADERS} )
8472
8573target_link_libraries (${PROJECT_NAME }
8674 PRIVATE
@@ -90,9 +78,26 @@ target_link_libraries(${PROJECT_NAME}
9078 ${SQLITE3_LIBRARIES}
9179 ${CMAKE_DL_LIBS }
9280)
93- if (USE_MYSQL)
81+
82+ # =================================================================================
83+ # Optional enable section
84+ # =================================================================================
85+
86+ # MySQL: optional. Enable with -DUSE_MYSQL=ON if mysqlclient include path works.
87+ if (MYSQL_FOUND AND USE_MYSQL)
88+ message (STATUS "Building with MySQL support" )
89+ target_include_directories (${PROJECT_NAME } PRIVATE ${MYSQL_INCLUDE_DIRS} )
9490 target_link_libraries (${PROJECT_NAME } PRIVATE ${MYSQL_LDFLAGS} )
91+ else ()
92+ if (MYSQL_FOUND)
93+ message (STATUS "MySQL found but disabled (set -DUSE_MYSQL=ON to enable)" )
94+ else ()
95+ message (STATUS "MySQL not found; building without MySQL support" )
96+ endif ()
9597endif ()
9698
99+
100+ add_subdirectory (extensions )
101+
97102# Install (e.g. cmake --install build --prefix /usr/local)
98103install (TARGETS ${PROJECT_NAME } RUNTIME DESTINATION bin)
0 commit comments