Skip to content

Commit 0b98bc7

Browse files
committed
split up into two CMakeLists.txt
one for the library, one for the demo Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
1 parent a107eaf commit 0b98bc7

File tree

2 files changed

+64
-31
lines changed

2 files changed

+64
-31
lines changed

CMakeLists.txt

Lines changed: 1 addition & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -102,41 +102,11 @@ set_target_properties(${PROJECT_NAME} PROPERTIES
102102
SOVERSION ${PROJECT_VERSION_MAJOR}
103103
)
104104

105-
#-----------------------------------------------------------------------------
106-
# demo target
107-
#-----------------------------------------------------------------------------
108-
109-
110-
add_executable(test-target EXCLUDE_FROM_ALL
111-
${CMAKE_CURRENT_SOURCE_DIR}/demo/shared.c
112-
${CMAKE_CURRENT_SOURCE_DIR}/demo/test.c
113-
)
114-
115-
target_include_directories(test-target PRIVATE
116-
${CMAKE_CURRENT_SOURCE_DIR}
117-
)
118-
119-
target_link_libraries(test-target PRIVATE
120-
${PROJECT_NAME}
121-
)
122-
123-
target_compile_options(test-target BEFORE PRIVATE
124-
$<$<STREQUAL:$<TARGET_PROPERTY:${PROJECT_NAME},TYPE>,SHARED_LIBRARY>:-O1 -DLTM_TEST_DYNAMIC>
125-
${LTM_C_FLAGS}
126-
)
127-
target_link_options(test-target BEFORE PRIVATE
128-
$<$<STREQUAL:$<TARGET_PROPERTY:${PROJECT_NAME},TYPE>,SHARED_LIBRARY>:-O1>
129-
${LTM_LD_FLAGS}
130-
)
131105

132106
#-----------------------------------------------------------------------------
133107
# demo target
134108
#-----------------------------------------------------------------------------
135-
add_custom_target(check
136-
COMMAND ${CMAKE_CURRENT_BINARY_DIR}/test-target
137-
)
138-
139-
add_dependencies(check test-target)
109+
add_subdirectory(demo)
140110

141111
#-----------------------------------------------------------------------------
142112
# Install/export targets and files

demo/CMakeLists.txt

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
# SPDX-License-Identifier: Unlicense
2+
#
3+
# LibTomMath, a free open source portable number theoretic multiple-precision
4+
# integer (MPI) library written entirely in C.
5+
#
6+
7+
cmake_minimum_required(VERSION 3.10)
8+
9+
set(LTM_TEST test-ltm)
10+
11+
# This file can be included from the top level or used stand-alone
12+
if(PROJECT_NAME)
13+
set(LIBRARY_NAME ${PROJECT_NAME})
14+
else()
15+
# Define an independent project and all the necessary stuff around
16+
project(${LTM_TEST}
17+
LANGUAGES C)
18+
set(LIBRARY_NAME tommath)
19+
find_package(${LIBRARY_NAME})
20+
include(CTest)
21+
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
22+
set(CMAKE_BUILD_TYPE "Release")
23+
endif()
24+
endif()
25+
26+
#-----------------------------------------------------------------------------
27+
# Compose CFLAGS etc.
28+
#-----------------------------------------------------------------------------
29+
30+
if(NOT MSVC)
31+
set(CMAKE_C_FLAGS_DEBUG "-g3 -O1")
32+
endif()
33+
34+
#-----------------------------------------------------------------------------
35+
# demo target
36+
#-----------------------------------------------------------------------------
37+
38+
add_executable(${LTM_TEST}
39+
${CMAKE_CURRENT_SOURCE_DIR}/shared.c
40+
${CMAKE_CURRENT_SOURCE_DIR}/test.c
41+
)
42+
43+
target_include_directories(${LTM_TEST} PRIVATE
44+
${CMAKE_CURRENT_SOURCE_DIR}
45+
$<$<STREQUAL:${PROJECT_NAME},${LTM_TEST}>:${CMAKE_CURRENT_SOURCE_DIR}/..>
46+
)
47+
48+
target_link_libraries(${LTM_TEST} PRIVATE
49+
${LIBRARY_NAME}
50+
)
51+
52+
target_compile_options(${LTM_TEST} PRIVATE
53+
$<$<STREQUAL:$<TARGET_PROPERTY:${LIBRARY_NAME},TYPE>,SHARED_LIBRARY>:-DLTM_TEST_DYNAMIC>
54+
${LTM_C_FLAGS}
55+
)
56+
target_link_options(${LTM_TEST} BEFORE PUBLIC
57+
${LTM_LD_FLAGS}
58+
)
59+
60+
#-----------------------------------------------------------------------------
61+
# CTest
62+
#-----------------------------------------------------------------------------
63+
add_test(NAME ${LTM_TEST} COMMAND ${LTM_TEST})

0 commit comments

Comments
 (0)