aboutsummaryrefslogtreecommitdiff
path: root/lib/cpluff/CMakeLists.txt
blob: ff5b1cb038bd27f356bd0f3d6e84e14762360676 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
cmake_minimum_required(VERSION 3.0)

project(libcpluff VERSION 0.1.4 LANGUAGES C)

find_package(expat 2.2.0 REQUIRED)

add_library(${PROJECT_NAME}
  ${CMAKE_CURRENT_SOURCE_DIR}/kazlib/hash.h
  ${CMAKE_CURRENT_SOURCE_DIR}/kazlib/hash.c
  ${CMAKE_CURRENT_SOURCE_DIR}/kazlib/list.h
  ${CMAKE_CURRENT_SOURCE_DIR}/kazlib/list.c
  ${CMAKE_CURRENT_SOURCE_DIR}/libcpluff/context.c
  ${CMAKE_CURRENT_SOURCE_DIR}/libcpluff/cpluff.h
  ${CMAKE_CURRENT_SOURCE_DIR}/libcpluff/cpluff.c
  ${CMAKE_CURRENT_SOURCE_DIR}/libcpluff/defines.h
  ${CMAKE_CURRENT_SOURCE_DIR}/libcpluff/internal.h
  ${CMAKE_CURRENT_SOURCE_DIR}/libcpluff/logging.c
  ${CMAKE_CURRENT_SOURCE_DIR}/libcpluff/pcontrol.c
  ${CMAKE_CURRENT_SOURCE_DIR}/libcpluff/pinfo.c
  ${CMAKE_CURRENT_SOURCE_DIR}/libcpluff/ploader.c
  ${CMAKE_CURRENT_SOURCE_DIR}/libcpluff/pscan.c
  ${CMAKE_CURRENT_SOURCE_DIR}/libcpluff/psymbol.c
  ${CMAKE_CURRENT_SOURCE_DIR}/libcpluff/serial.c
  ${CMAKE_CURRENT_SOURCE_DIR}/libcpluff/thread.h
  ${CMAKE_CURRENT_SOURCE_DIR}/libcpluff/util.h
  ${CMAKE_CURRENT_SOURCE_DIR}/libcpluff/util.c
)

if(WIN32)
  target_sources(${PROJECT_NAME} PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}/libcpluff/thread_windows.c
    ${CMAKE_CURRENT_SOURCE_DIR}/libcpluff/win32/cpluffdef.h
    ${CMAKE_CURRENT_SOURCE_DIR}/libcpluff/win32/dirent.h
    ${CMAKE_CURRENT_SOURCE_DIR}/libcpluff/win32/dirent.c
    ${CMAKE_CURRENT_SOURCE_DIR}/libcpluff/win32/win32_utils.h
    ${CMAKE_CURRENT_SOURCE_DIR}/libcpluff/win32/win32_utils.c
  )
endif()

target_link_libraries(${PROJECT_NAME} PRIVATE ${EXPAT_LIBRARIES})

target_include_directories(${PROJECT_NAME}
  PRIVATE
  $<BUILD_INTERFACE:kazlib;libcpluff;libcpluff/win32;${EXPAT_INCLUDE_DIR}>
  INTERFACE
  $<INSTALL_INTERFACE:include>
)

target_compile_definitions(${PROJECT_NAME} PRIVATE -Dhash_delete=kazlib_hash_delete -Dhash_free=kazlib_hash_free -Dhash_insert=kazlib_hash_insert -Dlist_delete=kazlib_list_delete)

target_compile_definitions(${PROJECT_NAME}
  PRIVATE
  XML_STATIC
  CP_C_API=CP_EXPORT
  _CRT_SECURE_NO_WARNINGS
  _CRT_NONSTDC_NO_DEPRECATE
)