Skip to content

Commit 1ed0751

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 1ed0751

File tree

2 files changed

+68
-31
lines changed

2 files changed

+68
-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: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
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+
include(CMakePrintHelpers)
27+
cmake_print_variables(PROJECT_NAME)
28+
cmake_print_variables(LIBRARY_NAME)
29+
30+
#-----------------------------------------------------------------------------
31+
# Compose CFLAGS etc.
32+
#-----------------------------------------------------------------------------
33+
34+
if(NOT MSVC)
35+
set(CMAKE_C_FLAGS_DEBUG "-g3 -O1")
36+
endif()
37+
38+
#-----------------------------------------------------------------------------
39+
# demo target
40+
#-----------------------------------------------------------------------------
41+
42+
add_executable(${LTM_TEST}
43+
${CMAKE_CURRENT_SOURCE_DIR}/shared.c
44+
${CMAKE_CURRENT_SOURCE_DIR}/test.c
45+
)
46+
47+
target_include_directories(${LTM_TEST} PRIVATE
48+
${CMAKE_CURRENT_SOURCE_DIR}
49+
$<$<STREQUAL:${PROJECT_NAME},${LTM_TEST}>:${CMAKE_CURRENT_SOURCE_DIR}/..>
50+
)
51+
52+
target_link_libraries(${LTM_TEST} PRIVATE
53+
${LIBRARY_NAME}
54+
)
55+
56+
target_compile_options(${LTM_TEST} PRIVATE
57+
$<$<STREQUAL:$<TARGET_PROPERTY:${LIBRARY_NAME},TYPE>,SHARED_LIBRARY>:-DLTM_TEST_DYNAMIC>
58+
${LTM_C_FLAGS}
59+
)
60+
target_link_options(${LTM_TEST} BEFORE PUBLIC
61+
${LTM_LD_FLAGS}
62+
)
63+
64+
#-----------------------------------------------------------------------------
65+
# CTest
66+
#-----------------------------------------------------------------------------
67+
add_test(NAME ${LTM_TEST} COMMAND ${LTM_TEST})

0 commit comments

Comments
 (0)