Fix ObjectLibrary test on Watcom

The Watcom compiler interprets "-DB" as option

 -db generate browsing information

so define "A_DEF" and "B_DEF" instead of just "A" and "B".

Skip CMAKE_SHARED_LIBRARY_C_FLAGS for Watcom because it is set to

 -bd  build Dynamic link library

which adds a DLL entry point to each object.
This commit is contained in:
Brad King 2012-03-20 15:06:16 -04:00
parent 93d5509b5b
commit fb7348f644
4 changed files with 12 additions and 12 deletions

View File

@ -1,10 +1,10 @@
# Add -fPIC so objects can be used in shared libraries. # Add -fPIC so objects can be used in shared libraries.
# TODO: Need property for this. # TODO: Need property for this.
if(CMAKE_SHARED_LIBRARY_C_FLAGS) if(CMAKE_SHARED_LIBRARY_C_FLAGS AND NOT WATCOM)
set(CMAKE_C_FLAGS "${CMAKE_SHARED_LIBRARY_C_FLAGS} ${CMAKE_C_FLAGS}") set(CMAKE_C_FLAGS "${CMAKE_SHARED_LIBRARY_C_FLAGS} ${CMAKE_C_FLAGS}")
endif() endif()
add_definitions(-DA) add_definitions(-DA_DEF)
add_custom_command( add_custom_command(
OUTPUT a1.c OUTPUT a1.c

View File

@ -1,6 +1,6 @@
#ifndef A #ifndef A_DEF
# error "A not defined" # error "A_DEF not defined"
#endif #endif
#ifdef B #ifdef B_DEF
# error "B must not be defined" # error "B_DEF must not be defined"
#endif #endif

View File

@ -5,11 +5,11 @@ endif()
# Add -fPIC so objects can be used in shared libraries. # Add -fPIC so objects can be used in shared libraries.
# TODO: Need property for this. # TODO: Need property for this.
if(CMAKE_SHARED_LIBRARY_C_FLAGS) if(CMAKE_SHARED_LIBRARY_C_FLAGS AND NOT WATCOM)
set(CMAKE_C_FLAGS "${CMAKE_SHARED_LIBRARY_C_FLAGS} ${CMAKE_C_FLAGS}") set(CMAKE_C_FLAGS "${CMAKE_SHARED_LIBRARY_C_FLAGS} ${CMAKE_C_FLAGS}")
endif() endif()
add_definitions(-DB) add_definitions(-DB_DEF)
add_library(B OBJECT b1.c b2.c) add_library(B OBJECT b1.c b2.c)
add_library(Bexport OBJECT b1${vs6}.c b2${vs6}.c) add_library(Bexport OBJECT b1${vs6}.c b2${vs6}.c)
set_property(TARGET Bexport PROPERTY COMPILE_DEFINITIONS Bexport) set_property(TARGET Bexport PROPERTY COMPILE_DEFINITIONS Bexport)

View File

@ -1,8 +1,8 @@
#ifdef A #ifdef A_DEF
# error "A must not be defined" # error "A_DEF must not be defined"
#endif #endif
#ifndef B #ifndef B_DEF
# error "B not defined" # error "B_DEF not defined"
#endif #endif
#if defined(_WIN32) && defined(Bexport) #if defined(_WIN32) && defined(Bexport)
# define EXPORT_B __declspec(dllexport) # define EXPORT_B __declspec(dllexport)