Skip to content

Commit

Permalink
Merge pull request #378 from tribal-tec/fix
Browse files Browse the repository at this point in the history
MSVC fixes: test execution, compiler flags, DNSSD finder
  • Loading branch information
eile committed Jul 27, 2015
2 parents bcb808d + 14ee71a commit fcd3282
Show file tree
Hide file tree
Showing 7 changed files with 31 additions and 17 deletions.
1 change: 0 additions & 1 deletion CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
* FindPackages.cmake should no longer be used; use common_package() for each
dependency and common_package_post() at the end (will write defines.h, hence
at the end)
* Fix RHEL library path to be lib64, not lib anymore

# 2015.06

Expand Down
16 changes: 12 additions & 4 deletions CommonCPPCTest.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
# ${NAME}_TEST_LABEL specifies an additional label.
# * UNIT_AND_PERF_TESTS a list with files which should be compiled
# also as performance tests. The unit test will be named 'file',
# whereas the performance test will be named 'perf_file'.
# whereas the performance test will be named 'perf-file'.

if(NOT WIN32) # tests want to be with DLLs on Windows - no rpath support
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
Expand All @@ -46,7 +46,7 @@ set(ALL_CPP_TESTS)
set(ALL_CPP_PERF_TESTS)

macro(common_add_cpp_test NAME FILE)
set(TEST_NAME ${PROJECT_NAME}_${NAME})
set(TEST_NAME ${PROJECT_NAME}-${NAME})
if(NOT TARGET ${NAME} AND NOT MSVC) # Create target without project prefix if possible
set(TEST_NAME ${NAME})
endif()
Expand Down Expand Up @@ -105,10 +105,17 @@ foreach(FILE ${TEST_FILES})
string(REGEX REPLACE "[./]" "_" NAME ${NAME})
source_group(\\ FILES ${FILE})

common_add_cpp_test(${NAME} ${FILE})
if(MSVC)
# need unique target name:
# - case insensitivity can result to duplicated targets
# - PDB files of library and test executable could overwrite each other
common_add_cpp_test(test-${NAME} ${FILE})
else()
common_add_cpp_test(${NAME} ${FILE})
endif()
list(FIND UNIT_AND_PERF_TESTS ${FILE} ADD_PERF_TEST)
if(ADD_PERF_TEST GREATER -1)
common_add_cpp_test(perf_${NAME} ${FILE})
common_add_cpp_test(perf-${NAME} ${FILE})
endif()
endforeach()

Expand All @@ -130,6 +137,7 @@ endif()

add_dependencies(${PROJECT_NAME}-tests ${PROJECT_NAME}-cpptests)
add_dependencies(tests ${PROJECT_NAME}-tests)
add_dependencies(cpptests ${PROJECT_NAME}-cpptests)
add_dependencies(perftests ${PROJECT_NAME}-perftests)

if(ENABLE_COVERAGE)
Expand Down
17 changes: 8 additions & 9 deletions CommonCTest.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,20 @@

if(NOT TARGET tests)
add_custom_target(tests)
set_target_properties(tests PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD ON)
endif()
if(NOT TARGET cpptests)
add_custom_target(cpptests)
set_target_properties(cpptests PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD ON)
endif()
if(NOT TARGET perftests)
add_custom_target(perftests)
set_target_properties(perftests PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD ON)
endif()
if(NOT TARGET ${PROJECT_NAME}-tests)
add_custom_target(${PROJECT_NAME}-tests)
set_target_properties(${PROJECT_NAME}-tests PROPERTIES
EXCLUDE_FROM_DEFAULT_BUILD ON FOLDER ${PROJECT_NAME}/tests)
endif()

set_target_properties(tests PROPERTIES
EXCLUDE_FROM_DEFAULT_BUILD ON FOLDER ${PROJECT_NAME}/tests)
set_target_properties(perftests PROPERTIES
EXCLUDE_FROM_DEFAULT_BUILD ON FOLDER ${PROJECT_NAME}/tests)
set_target_properties(${PROJECT_NAME}-tests PROPERTIES
EXCLUDE_FROM_DEFAULT_BUILD ON FOLDER ${PROJECT_NAME}/tests)

add_dependencies(tests ${PROJECT_NAME}-tests)

include(CommonCPPCTest)
6 changes: 5 additions & 1 deletion Compiler.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,11 @@
# Output Variables
# * GCC_COMPILER_VERSION The compiler version if gcc is used
# * COMMON_C_FLAGS The common flags for C compiler
# * COMMON_C_FLAGS_DEBUG The common flags for C compiler in Debug build
# * COMMON_C_FLAGS_RELWITHDEBINFO The common flags for C compiler in RelWithDebInfo build
# * COMMON_C_FLAGS_RELEASE The common flags for C compiler in Release build
# * COMMON_CXX_FLAGS The common flags for C++ compiler
# * COMMON_CXX_FLAGS_DEBUG The common flags for C++ compiler in Debug build
# * COMMON_CXX_FLAGS_RELWITHDEBINFO The common flags for C++ compiler in RelWithDebInfo build
# * COMMON_CXX_FLAGS_RELEASE The common flags for C++ compiler in Release build
# * C_DIALECT_OPT_C89 Compiler flag to select C89 C dialect
Expand Down Expand Up @@ -178,7 +180,7 @@ if(MSVC)
set(COMMON_C_FLAGS) # reset, GCC flags not applicable
# http://www.ogre3d.org/forums/viewtopic.php?f=2&t=60015&start=0
set(COMMON_CXX_FLAGS "/DWIN32 /D_WINDOWS /W3 /Zm500 /EHsc /GR")
set(COMMON_CXX_FLAGS_RELEASE "${COMMON_CXX_FLAGS_RELEASE} /WX")
set(COMMON_CXX_FLAGS_DEBUG "${COMMON_CXX_FLAGS_RELEASE} /WX")
endif()

set(COMMON_C_FLAGS_RELWITHDEBINFO "${COMMON_C_FLAGS_RELWITHDEBINFO} -DNDEBUG")
Expand All @@ -193,9 +195,11 @@ endif()

macro(common_compiler_flags)
set(CMAKE_C_FLAGS "${COMMON_C_FLAGS} ${CMAKE_C_FLAGS}")
set(CMAKE_C_FLAGS_DEBUG "${COMMON_C_FLAGS_DEBUG} ${CMAKE_C_FLAGS_DEBUG}")
set(CMAKE_C_FLAGS_RELWITHDEBINFO "${COMMON_C_FLAGS_RELWITHDEBINFO} ${CMAKE_C_FLAGS_RELWITHDEBINFO}")
set(CMAKE_C_FLAGS_RELEASE "${COMMON_C_FLAGS_RELEASE} ${CMAKE_C_FLAGS_RELEASE}")
set(CMAKE_CXX_FLAGS "${COMMON_CXX_FLAGS} ${CMAKE_CXX_FLAGS}")
set(CMAKE_CXX_FLAGS_DEBUG "${COMMON_CXX_FLAGS_DEBUG} ${CMAKE_CXX_FLAGS_DEBUG}")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${COMMON_CXX_FLAGS_RELWITHDEBINFO} ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
set(CMAKE_CXX_FLAGS_RELEASE "${COMMON_CXX_FLAGS_RELEASE} ${CMAKE_CXX_FLAGS_RELEASE}")
endmacro()
Expand Down
4 changes: 3 additions & 1 deletion CppcheckTargets.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ if(NOT CPPCHECK_FOUND)
add_custom_target(cppcheck_${PROJECT_NAME}
COMMENT "cppcheck executable not found")
set_target_properties(cppcheck_${PROJECT_NAME} PROPERTIES
EXCLUDE_FROM_DEFAULT_BUILD ON FOLDER {PROJECT_NAME}/tests/cppcheck)
EXCLUDE_FROM_DEFAULT_BUILD ON FOLDER ${PROJECT_NAME}/tests/cppcheck)
endif()

if(NOT TARGET cppcheck)
Expand Down Expand Up @@ -122,6 +122,8 @@ function(add_cppcheck _name)
endif()
if(NOT TARGET ${PROJECT_NAME}-tests)
add_custom_target(${PROJECT_NAME}-tests)
set_target_properties(${PROJECT_NAME}-tests PROPERTIES
EXCLUDE_FROM_DEFAULT_BUILD ON FOLDER ${PROJECT_NAME}/tests)
endif()

add_dependencies(cppcheck_${PROJECT_NAME} cppcheck_run_${_name})
Expand Down
2 changes: 2 additions & 0 deletions CpplintTargets.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,8 @@ function(add_cpplint _name)
if(CPPLINT_ADD_TESTS)
if(NOT TARGET ${PROJECT_NAME}-tests)
add_custom_target(${PROJECT_NAME}-tests)
set_target_properties(${PROJECT_NAME}-tests PROPERTIES
EXCLUDE_FROM_DEFAULT_BUILD ON FOLDER ${PROJECT_NAME}/tests)
endif()
add_dependencies(${PROJECT_NAME}-tests cpplint_run_${_name})
endif()
Expand Down
2 changes: 1 addition & 1 deletion FindDNSSD.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ if(APPLE)
PATH_SUFFIXES lib PATHS ${_dnssd_lib_paths}
)
elseif(WIN32)
if("${CMAKE_GENERATOR}" MATCHES "Win64")
if("${CMAKE_SHARED_LINKER_FLAGS}" MATCHES "x64")
set(_dnssd_lib_postfix "x64")
else()
set(_dnssd_lib_postfix "Win32")
Expand Down

0 comments on commit fcd3282

Please sign in to comment.