2026-03-30 21:43:47 +11:00
|
|
|
project(ANSCustomFireNSmokeDetection LANGUAGES CXX)
|
|
|
|
|
|
|
|
|
|
# ---------- sources ----------
|
|
|
|
|
set(SOURCES
|
|
|
|
|
ANSCustomFireNSmoke.cpp
|
|
|
|
|
dllmain.cpp
|
|
|
|
|
pch.cpp
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
set(HEADERS
|
|
|
|
|
ANSCustomFireNSmoke.h
|
|
|
|
|
framework.h
|
|
|
|
|
pch.h
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
# ---------- shared library (DLL) ----------
|
|
|
|
|
add_library(${PROJECT_NAME} SHARED ${SOURCES} ${HEADERS})
|
|
|
|
|
|
|
|
|
|
# ---------- preprocessor definitions ----------
|
|
|
|
|
target_compile_definitions(${PROJECT_NAME} PRIVATE
|
|
|
|
|
ANSCUSTOMFIRENSMOKE_EXPORTS
|
|
|
|
|
_WINDOWS
|
|
|
|
|
_USRDLL
|
|
|
|
|
WIN32_LEAN_AND_MEAN
|
|
|
|
|
NOMINMAX
|
|
|
|
|
$<$<CONFIG:Debug>:_DEBUG>
|
|
|
|
|
$<$<CONFIG:Release>:NDEBUG>
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
# ---------- include directories ----------
|
|
|
|
|
target_include_directories(${PROJECT_NAME} PRIVATE
|
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}
|
2026-04-06 07:11:04 +10:00
|
|
|
C:/ProgramData/ANSCENTER/Shared # ANSLIB.h + ANSLIB.lib from same location
|
2026-03-30 21:43:47 +11:00
|
|
|
C:/ANSLibs/opencv/include
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
# ---------- library directories & linking ----------
|
|
|
|
|
target_link_directories(${PROJECT_NAME} PRIVATE
|
|
|
|
|
C:/ProgramData/ANSCENTER/Shared
|
|
|
|
|
C:/ANSLibs/opencv/x64/vc17/lib
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
target_link_libraries(${PROJECT_NAME} PRIVATE
|
|
|
|
|
ANSLIB
|
|
|
|
|
opencv_world4130
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
# ---------- compiler options (MSVC) ----------
|
|
|
|
|
if(MSVC)
|
|
|
|
|
target_compile_options(${PROJECT_NAME} PRIVATE
|
|
|
|
|
/W3 # Warning level 3
|
|
|
|
|
/sdl # SDL checks
|
|
|
|
|
/permissive- # Conformance mode
|
2026-04-06 07:11:04 +10:00
|
|
|
/Zi # Generate full debug info (PDB) in all configs
|
|
|
|
|
$<$<CONFIG:Release>:/O2 /Oi> # Optimize + intrinsics (no /GL — incompatible with debugging)
|
2026-03-30 21:43:47 +11:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
target_link_options(${PROJECT_NAME} PRIVATE
|
2026-04-06 07:11:04 +10:00
|
|
|
/DEBUG # Emit PDB for debugger in all configs
|
|
|
|
|
$<$<CONFIG:Release>:/OPT:REF /OPT:ICF> # Optimize refs, COMDAT folding (no /LTCG — incompatible with debugging)
|
2026-03-30 21:43:47 +11:00
|
|
|
)
|
|
|
|
|
endif()
|