From 91627403a29ca88e010ea93f209b0a649fac3215 Mon Sep 17 00:00:00 2001 From: ilor <kailoran@gmail.com> Date: Tue, 2 Oct 2012 19:41:34 +0200 Subject: [PATCH] mingw fixes --- CMakeLists.txt | 18 +++++++++++++----- CMakeScripts/FindCorpus2.cmake | 8 ++++---- libmwereader/CMakeLists.txt | 20 +++++++++++++++----- libwccl/CMakeLists.txt | 10 ++++++---- wccl-apps/CMakeLists.txt | 4 ++-- wccl-apps/wccl-rules.cpp | 4 ++++ 6 files changed, 44 insertions(+), 20 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f32663e..b2fa6f0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,6 +19,12 @@ ENDIF(NOT CMAKE_BUILD_TYPE) set(WCCL_BUILD_SWIG True CACHE BOOL "Build SWIG Python wrappers" FORCE) +if(UNIX) + set(CFLAG_ANSI "-ansi") +else() + set(CFLAG_ANSI "") +endif(UNIX) + if(CMAKE_COMPILER_IS_GNUCXX) # Set our own default flags at first run. if(NOT CONFIGURED) @@ -28,17 +34,17 @@ if(CMAKE_COMPILER_IS_GNUCXX) set(STRICT_FLAGS "") endif(ENABLE_STRICT_COMPILATION) - set(CMAKE_C_FLAGS "-W -Wall -ansi $ENV{CFLAGS}" + set(CMAKE_C_FLAGS "-W -Wall ${CFLAG_ANSI} $ENV{CFLAGS}" CACHE STRING "Flags used by the C compiler during normal builds." FORCE) - set(CMAKE_C_FLAGS_DEBUG "-O0 -DDEBUG -ggdb3 -W -Wall -ansi $ENV{CFLAGS}" + set(CMAKE_C_FLAGS_DEBUG "-O0 -DDEBUG -ggdb3 -W -Wall ${CFLAG_ANSI} $ENV{CFLAGS}" CACHE STRING "Flags used by the C compiler during debug builds." FORCE) - set(CMAKE_CXX_FLAGS "-W -Wall -ansi ${STRICT_FLAGS} $ENV{CXXFLAGS}" + set(CMAKE_CXX_FLAGS "-W -Wall ${CFLAG_ANSI} ${STRICT_FLAGS} $ENV{CXXFLAGS}" CACHE STRING "Flags used by the CXX compiler during normal builds." FORCE) - set(CMAKE_CXX_FLAGS_DEBUG "-O0 -DDEBUG -ggdb3 -W -Wall -ansi ${STRICT_FLAGS} $ENV{CXXFLAGS}" + set(CMAKE_CXX_FLAGS_DEBUG "-O0 -DDEBUG -ggdb3 -W -Wall ${CFLAG_ANSI} ${STRICT_FLAGS} $ENV{CXXFLAGS}" CACHE STRING "Flags used by the CXX compiler during debug builds." FORCE) set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g -fno-omit-frame-pointer" @@ -62,7 +68,9 @@ endif(MSVC OR BORLAND) add_subdirectory(libwccl) add_subdirectory(wccl-apps) -add_subdirectory(tests) +if(UNIX) + add_subdirectory(tests) +endif(UNIX) add_subdirectory(libmwereader) if(WCCL_BUILD_SWIG) diff --git a/CMakeScripts/FindCorpus2.cmake b/CMakeScripts/FindCorpus2.cmake index 0ea7485..8d4b711 100644 --- a/CMakeScripts/FindCorpus2.cmake +++ b/CMakeScripts/FindCorpus2.cmake @@ -1,9 +1,11 @@ -FIND_PATH(Corpus2_INCLUDE_DIR token.h /usr/include/libcorpus2 /usr/local/include/libcorpus2 ) +FIND_PATH(Corpus2_INCLUDE_DIR libcorpus2/token.h /usr/include /usr/local/include ) FIND_LIBRARY(Corpus2_LIBRARY NAMES corpus2 PATH /usr/lib /usr/local/lib) + MARK_AS_ADVANCED(Corpus2_LIBRARY) MARK_AS_ADVANCED(Corpus2_INCLUDE_DIR) + IF (Corpus2_INCLUDE_DIR AND Corpus2_LIBRARY) SET(Corpus2_FOUND TRUE) ENDIF (Corpus2_INCLUDE_DIR AND Corpus2_LIBRARY) @@ -11,8 +13,7 @@ ENDIF (Corpus2_INCLUDE_DIR AND Corpus2_LIBRARY) IF (Corpus2_FOUND) set(Corpus2_VERSION 0.0.0) - set(Corpus2_LIBRARIES ${Corpus2_LIBRARY}) - FIND_FILE(_Corpus2_VERSION_FILE version.h ${Corpus2_INCLUDE_DIR}) + FIND_FILE(_Corpus2_VERSION_FILE libcorpus2/version.h ${Corpus2_INCLUDE_DIR}) MARK_AS_ADVANCED(_Corpus2_VERSION_FILE) IF (_Corpus2_VERSION_FILE) FILE(READ ${_Corpus2_VERSION_FILE} _Corpus2_VERSION_CONENTS) @@ -21,7 +22,6 @@ IF (Corpus2_FOUND) IF (Corpus2_FIND_VERSION) IF (Corpus2_VERSION VERSION_LESS Corpus2_FIND_VERSION) IF (Corpus2_FIND_REQUIRED) - MESSAGE(${_Corpus2_VERSION_FILE}) MESSAGE(FATAL_ERROR "Corpus2 version too old: ${Corpus2_VERSION}, requested >= ${Corpus2_FIND_VERSION}") ELSE (Corpus2_FIND_REQUIRED) IF (NOT Corpus2_FIND_QUIETLY) diff --git a/libmwereader/CMakeLists.txt b/libmwereader/CMakeLists.txt index da835e2..093b88c 100644 --- a/libmwereader/CMakeLists.txt +++ b/libmwereader/CMakeLists.txt @@ -5,12 +5,16 @@ set(libmwereader_minor 1) find_package(Corpus2 1.0.9 REQUIRED) -set(LIBS ${LIBS} ${Corpus2_LIBRARIES}) +include_directories(${Corpus2_INCLUDE_DIR}) +link_directories(${Corpus2_LIBRARY_DIR}) +set(LIBS ${LIBS} ${Corpus2_LIBRARY}) find_package(PwrUtils 1.0.1 REQUIRED) +include_directories(${PwrUtils_INCLUDE_DIR}) set(LIBS ${LIBS} ${PwrUtils_LIBRARY}) link_directories(${Boost_LIBRARY_DIRS}) +include_directories(${Boost_INCLUDE_DIR}) set(LIBS ${LIBS} ${Boost_LIBRARIES}) find_package(ICU REQUIRED) @@ -25,7 +29,11 @@ include_directories(${LibXML++_INCLUDE_DIRS}) link_directories(${LibXML++_LIBRARY_DIRS}) set(LIBS ${LIBS} ${LibXML++_LIBRARIES}) -set(LIBS ${LIBS} corpus2 wccl antlr-pic) +if(UNIX) + set(LIBS ${LIBS} wccl antlr-pic) +else() + set(LIBS ${LIBS} wccl antlr) +endif() add_library(corpus2_mwereader SHARED mwereader.cpp mwe.cpp mweparser.cpp) @@ -35,15 +43,17 @@ set_target_properties(corpus2_mwereader PROPERTIES VERSION "${libmwereader_major}.${libmwereader_minor}" SOVERSION ${libmwereader_major}) -if(UNIX) - install(TARGETS corpus2_mwereader LIBRARY DESTINATION lib) + install(TARGETS corpus2_mwereader + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + RUNTIME DESTINATION bin + ) #install(TARGETS c2pqtest RUNTIME DESTINATION bin) install( DIRECTORY ./ DESTINATION include/libmwereader FILES_MATCHING PATTERN "*.h" ) -endif(UNIX) add_subdirectory(tests) diff --git a/libwccl/CMakeLists.txt b/libwccl/CMakeLists.txt index 6c6a9fe..4160351 100644 --- a/libwccl/CMakeLists.txt +++ b/libwccl/CMakeLists.txt @@ -7,11 +7,13 @@ include_directories( ${CMAKE_CURRENT_BINARY_DIR}/include/ ) add_definitions(-DHAVE_VERSION_H) find_package(Corpus2 1.0.12 REQUIRED) -set(LIBS ${LIBS} ${Corpus2_LIBRARIES}) +include_directories(${Corpus2_INCLUDE_DIR}) +set(LIBS ${LIBS} ${Corpus2_LIBRARY}) find_package(PwrUtils 1.0.1 REQUIRED) set(LIBS ${LIBS} ${PwrUtils_LIBRARY}) +include_directories(${Boost_INCLUDE_DIR}) link_directories(${Boost_LIBRARY_DIRS}) set(LIBS ${LIBS} ${Boost_LIBRARIES}) @@ -157,7 +159,7 @@ file(GLOB_RECURSE INCS "*.h") if(WIN32) #need to explicitly specify exports/external API for win DLL #until that's done, build STATIC for WIN32 - add_library(wccl STATIC ${libwccl_STAT_SRC} ${INCS}) + add_library(wccl SHARED ${libwccl_STAT_SRC} ${INCS}) else(WIN32) add_library(wccl SHARED ${libwccl_STAT_SRC} ${INCS}) endif(WIN32) @@ -169,9 +171,10 @@ set_target_properties(wccl PROPERTIES SOVERSION ${wccl_ver_major}) -if(UNIX) install(TARGETS wccl LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + RUNTIME DESTINATION bin ) install( DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} @@ -182,5 +185,4 @@ if(UNIX) PATTERN "build" EXCLUDE PATTERN "CMake*" EXCLUDE ) -endif(UNIX) diff --git a/wccl-apps/CMakeLists.txt b/wccl-apps/CMakeLists.txt index 85550bf..14f84f3 100644 --- a/wccl-apps/CMakeLists.txt +++ b/wccl-apps/CMakeLists.txt @@ -18,6 +18,8 @@ set(LIBS ${LIBS} loki) include_directories(${CMAKE_SOURCE_DIR}) include_directories(${wccl_BINARY_DIR}/include) include_directories(${Boost_INCLUDE_DIR}) +include_directories(${ICU_INCLUDE_DIR}) +include_directories(${Corpus2_INCLUDE_DIR}) link_directories(${Boost_LIBRARY_DIRS}) add_executable(wccl-features wccl-features.cpp) @@ -29,8 +31,6 @@ target_link_libraries (wccl-rules wccl ${Boost_LIBRARIES} antlr ${LIBS}) add_executable(wccl-parser wccl-parser.cpp) target_link_libraries (wccl-parser wccl ${Boost_LIBRARIES} antlr ${LIBS}) -if(UNIX) install(TARGETS wccl-features wccl-run wccl-rules wccl-parser RUNTIME DESTINATION bin ) -endif(UNIX) diff --git a/wccl-apps/wccl-rules.cpp b/wccl-apps/wccl-rules.cpp index 0f73b64..f732dab 100644 --- a/wccl-apps/wccl-rules.cpp +++ b/wccl-apps/wccl-rules.cpp @@ -92,7 +92,11 @@ public: private: const Corpus2::Tagset& tagset_; Wccl::Parser parser_; +#ifdef __unix__ std::vector<std::string> file_names_; +#else + std::vector<std::wstring> file_names_; +#endif std::vector<boost::shared_ptr<Wccl::WcclFile> > parsed_files_; bool progress_; std::string search_path_; -- GitLab