Skip to content

Commit 2769383

Browse files
committed
disable tests for shared lib builds
1 parent a283133 commit 2769383

2 files changed

Lines changed: 46 additions & 33 deletions

File tree

CMakeLists.txt

Lines changed: 42 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -206,13 +206,13 @@ elseif(LINUX)
206206

207207
endif()
208208

209-
if(${GA_BUILD_SAMPLE})
210-
if(${GA_SHARED_LIB})
211-
add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/sample_shared")
212-
else()
213-
add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/sample")
214-
endif()
215-
endif()
209+
if(${GA_BUILD_SAMPLE})
210+
if(${GA_SHARED_LIB})
211+
add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/sample_shared")
212+
else()
213+
add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/sample")
214+
endif()
215+
endif()
216216

217217
add_library(GameAnalytics ${LIB_TYPE} ${CPP_SOURCES})
218218
target_link_libraries(GameAnalytics PRIVATE ${LIBS} PUBLIC ${PUBLIC_LIBS})
@@ -221,43 +221,52 @@ message(STATUS "CMAKE_EXE_LINKER_FLAGS: ${CMAKE_EXE_LINKER_FLAGS}")
221221
message(STATUS "CMAKE_SHARED_LINKER_FLAGS: ${CMAKE_SHARED_LINKER_FLAGS}")
222222
# --------------------------- Google Test Setup --------------------------- #
223223

224-
# Set Project Name
225-
set(UT_PROJECT_NAME "${PROJECT_NAME}UnitTests")
224+
# Only build tests for static library builds
225+
# Shared library builds don't export internal symbols needed by tests
226+
if(NOT GA_SHARED_LIB)
227+
message(STATUS "Building unit tests (tests are only available for static library builds)")
228+
229+
# Set Project Name
230+
set(UT_PROJECT_NAME "${PROJECT_NAME}UnitTests")
226231

227-
# Add Google Test
228-
set(GTEST_DIR "${EXTERNALS_DIR}/googletest")
229-
add_subdirectory(${GTEST_DIR} ${PROJECT_SOURCE_DIR}/gtest_build)
232+
# Add Google Test
233+
set(GTEST_DIR "${EXTERNALS_DIR}/googletest")
234+
add_subdirectory(${GTEST_DIR} ${PROJECT_SOURCE_DIR}/gtest_build)
230235

231-
# Add tests
232-
enable_testing()
236+
# Add tests
237+
enable_testing()
233238

234-
########################################
235-
# Test files
236-
########################################
239+
########################################
240+
# Test files
241+
########################################
237242

238-
file(GLOB_RECURSE TEST_SRC_FILES "${PROJECT_SOURCE_DIR}/test/*.cpp")
243+
file(GLOB_RECURSE TEST_SRC_FILES "${PROJECT_SOURCE_DIR}/test/*.cpp")
239244

240-
########################################
241-
# Unit Tests
242-
#######################################
243-
add_executable(${UT_PROJECT_NAME} ${TEST_SRC_FILES})
245+
########################################
246+
# Unit Tests
247+
#######################################
248+
add_executable(${UT_PROJECT_NAME} ${TEST_SRC_FILES})
244249

245-
########################################
246-
# Standard linking to gtest and gmock components
247-
########################################
248-
target_link_libraries(${UT_PROJECT_NAME} gtest gtest_main gmock_main)
250+
########################################
251+
# Standard linking to gtest and gmock components
252+
########################################
253+
target_link_libraries(${UT_PROJECT_NAME} gtest gtest_main gmock_main)
249254

250-
########################################
251-
# Linking to GA SDK
252-
########################################
253-
target_link_libraries(${UT_PROJECT_NAME} ${PROJECT_NAME})
255+
########################################
256+
# Linking to GA SDK
257+
########################################
258+
target_link_libraries(${UT_PROJECT_NAME} ${PROJECT_NAME})
254259

255-
########################################
256-
add_test(NAME ${UT_PROJECT_NAME} COMMAND GameAnalyticsUnitTests)
260+
########################################
261+
add_test(NAME ${UT_PROJECT_NAME} COMMAND GameAnalyticsUnitTests)
262+
else()
263+
message(STATUS "Skipping unit tests (not available for shared library builds)")
264+
endif()
257265

258266
# --------------------------- Code Coverage Setup --------------------------- #
259267

260-
if (ENABLE_COVERAGE)
268+
# Coverage requires tests, which are only available for static library builds
269+
if (ENABLE_COVERAGE AND NOT GA_SHARED_LIB)
261270
find_program(GCOV_PATH gcov)
262271
if (NOT GCOV_PATH)
263272
message(WARNING "program gcov not found")

setup.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,10 @@ def main():
4242
if args.compiler and not args.platform.startswith('linux'):
4343
parser.error('--compiler can only be used with Linux platforms')
4444

45+
# Validate coverage is not used with shared library
46+
if args.coverage and args.shared:
47+
parser.error('--coverage cannot be used with --shared (coverage requires tests which need static library)')
48+
4549
# Get compiler configuration for this platform (single compiler, like cmake.yml)
4650
compiler_config = get_compiler_for_platform(args.platform, args.compiler)
4751
c_compiler = compiler_config.get('c', '')

0 commit comments

Comments
 (0)