Skip to content

Commit 90dc1d6

Browse files
davywmpictor
authored andcommitted
Fixed check-express linkage for MSVC.
* Added SCL_EXPRESS_EXPORT flag for yydebug,yydbg_upper_limit,yydbg_lower_limit and yydbg_verbose * Added xgetopt.cc for check-express/MSVC. * Added inithook for check-express/MSVC? * Used set_target_properties COMPILE_DEFINITIONS in stead of add_definitions for SCL_EXPRESS_EXPORTS/SCL_EXPRESS_IMPORTS.
1 parent d0a425f commit 90dc1d6

File tree

3 files changed

+26
-9
lines changed

3 files changed

+26
-9
lines changed

include/express/express.h

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,13 @@ struct Express_ {
9898
# define INITIALLY(value)
9999
#endif /*EXPRESS_C*/
100100

101+
#ifdef YYDEBUG
102+
extern SCL_EXPRESS_EXPORT int yydebug;
103+
extern SCL_EXPRESS_EXPORT int yydbg_upper_limit;
104+
extern SCL_EXPRESS_EXPORT int yydbg_lower_limit;
105+
extern SCL_EXPRESS_EXPORT int yydbg_verbose;
106+
#endif
107+
101108
GLOBAL SCL_EXPRESS_EXPORT Linked_List EXPRESS_path;
102109
GLOBAL SCL_EXPRESS_EXPORT int EXPRESSpass;
103110

@@ -274,7 +281,7 @@ extern SCL_EXPRESS_EXPORT void EXPRESSresolve PROTO( ( Express ) );
274281
extern SCL_EXPRESS_EXPORT char *EXPRESSversion PROTO( ( void ) );
275282
extern SCL_EXPRESS_EXPORT int EXPRESS_fail PROTO( ( Express ) );
276283
extern SCL_EXPRESS_EXPORT int EXPRESS_succeed PROTO( ( Express ) );
277-
extern SCL_EXPRESS_EXPORT void EXPRESSinit_init PROTO( ( void ) );
284+
extern void EXPRESSinit_init PROTO( ( void ) );
278285
#if 0
279286
extern void EXPRESSdump_model PROTO( ( Express ) );
280287
#endif /*0*/

src/express/CMakeLists.txt

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ ENDIF()
1717

1818
add_definitions( -DYYDEBUG ) #always define this. equivalent to 'bison -t'
1919

20-
2120
YACC_TARGET(ExpParser expparse.y ${CMAKE_CURRENT_BINARY_DIR}/expparse.c COMPILE_FLAGS ${YACC_FLAGS})
2221
LEX_TARGET(ExpScanner expscan.l ${CMAKE_CURRENT_BINARY_DIR}/expscan.c COMPILE_FLAGS ${LEX_FLAGS})
2322
ADD_LEX_YACC_DEPENDENCY(ExpScanner ExpParser)
@@ -48,8 +47,15 @@ set(EXPRESS_SOURCES
4847
)
4948

5049
SET(CHECK_EXPRESS_SOURCES
51-
fedex.c
50+
fedex.c
51+
)
52+
53+
IF(MSVC)
54+
set(CHECK_EXPRESS_MSVC_SOURCES
55+
xgetopt.cc
56+
inithook.c
5257
)
58+
ENDIF(MSVC)
5359

5460
SET(EXPRESS_PRIVATE_HDRS
5561
conf.h
@@ -66,7 +72,6 @@ add_definitions( -DFLEX )
6672

6773
if(MSVC)
6874
add_definitions( -DYY_NO_UNISTD_H )
69-
add_definitions( -DSCL_EXPRESS_DLL_EXPORTS )
7075
endif(MSVC)
7176

7277
SCL_ADDLIB(express "${EXPRESS_SOURCES}" "")
@@ -75,4 +80,9 @@ if(APPLE)
7580
set_target_properties(express PROPERTIES LINK_FLAGS "-flat_namespace -undefined suppress")
7681
endif(APPLE)
7782

78-
# SCL_ADDEXEC("check-express" "${CHECK_EXPRESS_SOURCES}" express)
83+
SCL_ADDEXEC("check-express" "${CHECK_EXPRESS_SOURCES} ${CHECK_EXPRESS_MSVC_SOURCES}" express)
84+
85+
if(MSVC)
86+
set_target_properties(express PROPERTIES COMPILE_DEFINITIONS SCL_EXPRESS_DLL_EXPORTS)
87+
set_target_properties("check-express" PROPERTIES COMPILE_DEFINITIONS SCL_EXPRESS_DLL_IMPORTS)
88+
endif(MSVC)

src/express/fedex.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -87,10 +87,10 @@
8787
#include "express/resolve.h"
8888

8989
#ifdef YYDEBUG
90-
extern int yydebug;
91-
extern int yydbg_upper_limit;
92-
extern int yydbg_lower_limit;
93-
extern int yydbg_verbose;
90+
extern SCL_EXPRESS_EXPORT int yydebug;
91+
extern SCL_EXPRESS_EXPORT int yydbg_upper_limit;
92+
extern SCL_EXPRESS_EXPORT int yydbg_lower_limit;
93+
extern SCL_EXPRESS_EXPORT int yydbg_verbose;
9494
#endif /*YYDEBUG*/
9595

9696
extern SCL_EXPRESS_EXPORT int skip_exp_pause;

0 commit comments

Comments
 (0)