749584509e
If CXX or Fortran is enabled before C then the values of CMAKE_SHARED_MODULE_C_FLAGS CMAKE_SHARED_MODULE_CREATE_C_FLAGS may not be available. On platforms where MODULE library (plugin) creation is the same as SHARED library creation initialize the MODULE creation flags from the SHARED creation flags of the matching language instead of assuming that C has been enabled first. Teach the COnly and CxxOnly tests to build MODULE libraries. The latter covers this specific case.
24 lines
890 B
CMake
24 lines
890 B
CMake
# a simple C only test case
|
|
cmake_minimum_required (VERSION 2.6)
|
|
project (COnly C)
|
|
|
|
set(CMAKE_DEBUG_POSTFIX "_test_debug_postfix")
|
|
add_library(testc1 STATIC libc1.c)
|
|
add_library(testc2 SHARED libc2.c)
|
|
add_executable (COnly conly.c foo.c foo.h)
|
|
target_link_libraries(COnly testc1 testc2)
|
|
if(MSVC_VERSION)
|
|
set_target_properties(COnly PROPERTIES
|
|
LINK_FLAGS " /NODEFAULTLIB:\"libcdg.lib\" /NODEFAULTLIB:\"libcmtg.lib\" /NODEFAULTLIB:\"foomsvcrt.lib\" /NODEFAULTLIB:\"libbar.lib\" /NODEFAULTLIB:\"libfooba.lib\"")
|
|
endif(MSVC_VERSION)
|
|
string(ASCII 35 32 67 77 97 107 101 ASCII_STRING)
|
|
message(STATUS "String: ${ASCII_STRING}")
|
|
get_source_file_property(LANG conly.c LANGUAGE)
|
|
if("${LANG}" STREQUAL "C")
|
|
message("Language is C")
|
|
else("${LANG}" STREQUAL "C")
|
|
message(FATAL_ERROR "Bad language for file conly.c")
|
|
endif("${LANG}" STREQUAL "C")
|
|
|
|
add_library(testCModule MODULE testCModule.c)
|