@@ -2,25 +2,78 @@ cmake_minimum_required(VERSION 3.16.)
22project (DiffCheck VERSION 1.0.0 LANGUAGES CXX C)
33set (CMAKE_CXX_STANDARD 17)
44
5- include (CTest)
6- enable_testing ()
7-
8- set (BUILD_SHARED_LIBS ON )
95
106list (APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR} /cmake)
117
12- file (GLOB_RECURSE SOURCES src/*.cc src/*.hh)
8+ # # change the default build type to Release
9+ # if(NOT CMAKE_BUILD_TYPE)
10+ # set(CMAKE_BUILD_TYPE Release)
11+ # endif()
1312
14- add_executable (${PROJECT_NAME} ${SOURCES} )
1513
16- set (EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR} /bin)
14+ #--------------------------------------------------------------------------
15+ # options
16+ #--------------------------------------------------------------------------
17+
18+ #--------------------------------------------------------------------------
19+ # library
20+ #--------------------------------------------------------------------------
21+
1722
18- target_include_directories (${PROJECT_NAME}
23+ set (SHARED_LIB_NAME diffCheck)
24+
25+ file (GLOB_RECURSE SOURCES_LIB
26+ src/diffCheck.cc src/diffCheck.hh # diffCheck interface
27+ src/diffCheck/*.cc src/diffCheck/*.hh # diffCheck src
28+ src/diffcheckpch.cc src/diffcheckpch.hh # precompiled headers
29+ )
30+
31+ add_library (${SHARED_LIB_NAME} SHARED ${SOURCES_LIB} )
32+
33+ if (WIN32 )
34+ set_target_properties (${SHARED_LIB_NAME} PROPERTIES
35+ WINDOWS_EXPORT_ALL_SYMBOLS TRUE
36+ )
37+ endif ()
38+ set_target_properties (${SHARED_LIB_NAME} PROPERTIES
39+ RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} /bin # for dll
40+ # ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin # for lib
41+ )
42+
43+ target_include_directories (${SHARED_LIB_NAME}
1944 PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} /src
2045 )
2146
47+ target_precompile_headers(${SHARED_LIB_NAME} PUBLIC src/diffcheckpch.hh)
48+
49+
50+ #--------------------------------------------------------------------------
51+ # executable
52+ #--------------------------------------------------------------------------
53+
54+ set (APP_NAME_EXE diffCheckApp)
55+
56+ add_executable (${APP_NAME_EXE} src/diffCheckApp.cc)
57+
58+ set_target_properties (${APP_NAME_EXE} PROPERTIES
59+ RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} /bin
60+ )
61+
62+ target_link_libraries (${APP_NAME_EXE} ${SHARED_LIB_NAME} )
63+
64+ target_include_directories (${APP_NAME_EXE}
65+ PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} /src
66+ )
2267
2368#--------------------------------------------------------------------------
2469# Pre-compiled headers
2570#--------------------------------------------------------------------------
26- target_precompile_headers(${PROJECT_NAME} PRIVATE src/diffcheckpch.hh)
71+
72+ #--------------------------------------------------------------------------
73+ # Tests
74+ #--------------------------------------------------------------------------
75+
76+ include (CTest)
77+ enable_testing ()
78+
79+ add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR} /tests/global )
0 commit comments