diff options
author | Juergen Kahrs <Juergen.Kahrs@googlemail.com> | 2013-04-30 20:30:42 +0200 |
---|---|---|
committer | Juergen Kahrs <Juergen.Kahrs@googlemail.com> | 2013-04-30 20:30:42 +0200 |
commit | e58a44a35b0c64d8072d4663b68a5cfdebc6a83b (patch) | |
tree | f6bac87d58b7f30862bfd0bbd994d410a6abbaec | |
parent | 30826905fb5989599ee4313e1d4af584ac478fb4 (diff) | |
download | egawk-e58a44a35b0c64d8072d4663b68a5cfdebc6a83b.tar.gz egawk-e58a44a35b0c64d8072d4663b68a5cfdebc6a83b.tar.bz2 egawk-e58a44a35b0c64d8072d4663b68a5cfdebc6a83b.zip |
Found a clean way to auto-detect wctype_t and wint_t.
-rw-r--r-- | CMakeLists.txt | 3 | ||||
-rw-r--r-- | cmake/configure.cmake | 18 |
2 files changed, 5 insertions, 16 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index c8ec550d..cdc12dfa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -45,10 +45,7 @@ if(WIN32 OR "${CMAKE_SYSTEM_NAME}" STREQUAL "Windows") # On Ubuntu 12.04 patches to gawk's source code are needed: # - insert #include <windows.h> at the top of awk.h # - remove function execvp from pc/gawkmisc.pc - DefineConfigHValue(HAVE_WCTYPE_T 1) - DefineConfigHValue(WEOF EOF) DefineConfigHValue(HAVE_USLEEP 1) - DefineConfigHValue(HAVE_WINT_T 1) DefineConfigHValue(HAVE_ISWUPPER 1) DefineConfigHValue(HAVE_SETENV 1) DefineConfigHValue(STDC_HEADERS 1) diff --git a/cmake/configure.cmake b/cmake/configure.cmake index 2f0823e4..1c74bc5c 100644 --- a/cmake/configure.cmake +++ b/cmake/configure.cmake @@ -189,20 +189,12 @@ DefineTypeIfAvailable("long long int" HAVE_LONG_LONG_INT) DefineTypeIfAvailable("unsigned long long int" HAVE_UNSIGNED_LONG_LONG_INT) DefineTypeIfAvailable(intmax_t INTMAX_T) DefineTypeIfAvailable(uintmax_t UINTMAX_T) - -# Some of these dont work, maybe CheckCSourceCompiles would be better. DefineTypeIfAvailable("time_t" TIME_T_IN_SYS_TYPES_H) -DefineTypeIfAvailable("wctype_t" WCTYPE_T) -# Detection of wint_t works but in an unsatisfying way. -DefineIfSourceCompiles( - "#include \"wchar.h\" - static void testcb(wint_t w) { } - int main() { - wint_t w = 0; - testcb(w); - return 0; - }" - HAVE_WINT_T) +SET(CMAKE_EXTRA_INCLUDE_FILES wctype.h) +DefineTypeIfAvailable("wctype_t" HAVE_WCTYPE_T) +DefineTypeIfAvailable("wint_t" HAVE_WINT_T) +SET(CMAKE_EXTRA_INCLUDE_FILES) + DefineStructHasMemberIfAvailable("struct sockaddr_storage" ss_family sys/socket.h HAVE_SOCKADDR_STORAGE) DefineStructHasMemberIfAvailable("struct stat" st_blksize sys/stat.h HAVE_STRUCT_STAT_ST_BLKSIZE) DefineStructHasMemberIfAvailable("struct stat" st_blksize sys/stat.h HAVE_ST_BLKSIZE) |