mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-27 17:10:43 -06:00
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:
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user