Implemented fixes allowing libwebsockets to be built under Windows using MinGM/MSYS
[platform/upstream/libwebsockets.git] / CMakeLists.txt
index b805820..fcabdfb 100644 (file)
@@ -211,6 +211,7 @@ endif()
 
 if (MINGW)
        set(LWS_MINGW_SUPPORT 1)
+       set(CMAKE_C_FLAGS "-D__USE_MINGW_ANSI_STDIO ${CMAKE_C_FLAGS}")
 endif()
 
 include_directories("${PROJECT_BINARY_DIR}")
@@ -736,27 +737,34 @@ if (NOT LWS_WITHOUT_TESTAPPS)
                        set(TEST_SERVER_SSL_CERT "${PROJECT_BINARY_DIR}/libwebsockets-test-server.pem")
 
                        if (WIN32)
-                               file(WRITE "${PROJECT_BINARY_DIR}/openssl_input.txt"
-                                       "GB\n"
-                                       "Erewhon\n"
-                                       "All around\n"
-                                       "libwebsockets-test\n"
-                                       "localhost\n"
-                                       "none@invalid.org\n\n"
-                                       )
-
-                               # The "type" command is a bit picky with paths.
-                               file(TO_NATIVE_PATH "${PROJECT_BINARY_DIR}/openssl_input.txt" OPENSSL_INPUT_WIN_PATH)
-                               message("OPENSSL_INPUT_WIN_PATH = ${OPENSSL_INPUT_WIN_PATH}")
-                               message("cmd = \"${OPENSSL_EXECUTABLE}\" req -new -newkey rsa:1024 -days 10000 -nodes -x509 -keyout \"${TEST_SERVER_SSL_KEY}\" -out \"${TEST_SERVER_SSL_CERT}\"")
-
-                               execute_process(
-                                       COMMAND cmd /c type "${OPENSSL_INPUT_WIN_PATH}"
-                                       COMMAND "${OPENSSL_EXECUTABLE}" req -new -newkey rsa:1024 -days 10000 -nodes -x509 -keyout "${TEST_SERVER_SSL_KEY}" -out "${TEST_SERVER_SSL_CERT}"
-                                       RESULT_VARIABLE OPENSSL_RETURN_CODE
-                                       OUTPUT_QUIET ERROR_QUIET)
-
-                               message("\n")
+                               if (MINGW)
+                                       message("cmd = \"${OPENSSL_EXECUTABLE}\" req -new -newkey rsa:1024 -days 10000 -nodes -x509 -subj \"/C=GB/ST=Erewhon/L=All around/O=libwebsockets-test/CN=localhost\" -keyout \"${TEST_SERVER_SSL_KEY}\" -out \"${TEST_SERVER_SSL_CERT}\"")
+                                       execute_process(
+                                               COMMAND "${OPENSSL_EXECUTABLE}" req -new -newkey rsa:1024 -days 10000 -nodes -x509 -subj "/C=GB/ST=Erewhon/L=All around/O=libwebsockets-test/CN=localhost" -keyout "${TEST_SERVER_SSL_KEY}" -out "${TEST_SERVER_SSL_CERT}"
+                                               RESULT_VARIABLE OPENSSL_RETURN_CODE)
+                               else()
+                                       file(WRITE "${PROJECT_BINARY_DIR}/openssl_input.txt"
+                                               "GB\n"
+                                               "Erewhon\n"
+                                               "All around\n"
+                                               "libwebsockets-test\n"
+                                               "localhost\n"
+                                               "none@invalid.org\n\n"
+                                               )
+
+                                       # The "type" command is a bit picky with paths.
+                                       file(TO_NATIVE_PATH "${PROJECT_BINARY_DIR}/openssl_input.txt" OPENSSL_INPUT_WIN_PATH)
+                                       message("OPENSSL_INPUT_WIN_PATH = ${OPENSSL_INPUT_WIN_PATH}")
+                                       message("cmd = \"${OPENSSL_EXECUTABLE}\" req -new -newkey rsa:1024 -days 10000 -nodes -x509 -keyout \"${TEST_SERVER_SSL_KEY}\" -out \"${TEST_SERVER_SSL_CERT}\"")
+
+                                       execute_process(
+                                               COMMAND cmd /c type "${OPENSSL_INPUT_WIN_PATH}"
+                                               COMMAND "${OPENSSL_EXECUTABLE}" req -new -newkey rsa:1024 -days 10000 -nodes -x509 -keyout "${TEST_SERVER_SSL_KEY}" -out "${TEST_SERVER_SSL_CERT}"
+                                               RESULT_VARIABLE OPENSSL_RETURN_CODE
+                                               OUTPUT_QUIET ERROR_QUIET)
+
+                                       message("\n")
+                               endif()
 
                                if (OPENSSL_RETURN_CODE)
                                        message(WARNING "!!! Failed to generate SSL certificate for Test Server using cmd.exe !!!:\nOpenSSL return code = ${OPENSSL_RETURN_CODE}")
@@ -983,7 +991,9 @@ endif()
 message("---------------------------------------------------------------------")
 message("  Settings:  (For more help do cmake -LH <srcpath>)")
 message("---------------------------------------------------------------------")
-message(" LWS_WITH_SSL = ${LWS_WITH_SSL}  (SSL Support)")
+message(" LWS_WITH_STATIC = ${LWS_WITH_STATIC}")
+message(" LWS_WITH_SHARED = ${LWS_WITH_SHARED}")
+message(" LWS_WITH_SSL = ${LWS_WITH_SSL} (SSL Support)")
 message(" LWS_SSL_CLIENT_USE_OS_CA_CERTS = ${LWS_SSL_CLIENT_USE_OS_CA_CERTS}")
 message(" LWS_USE_WOLFSSL = ${LWS_USE_WOLFSSL} (wolfSSL/CyaSSL replacement for OpenSSL)")
 if (LWS_USE_WOLFSSL)