changeset 149:c12120a1fbc0

- make cmake based builds work on systems without a C++ compiler (thanks Franklin Mathieu)
author cslag
date Sat, 17 Sep 2016 14:10:53 +0200
parents 12729fd52ab7
children 3cb226f48495
files CMakeLists.txt test/CMakeLists.txt
diffstat 2 files changed, 16 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/CMakeLists.txt	Sun Sep 11 01:19:27 2016 +0200
+++ b/CMakeLists.txt	Sat Sep 17 14:10:53 2016 +0200
@@ -19,7 +19,7 @@
 #
 
 cmake_minimum_required (VERSION 2.6)
-project(DynCall)
+project(DynCall C)
 
 set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "dyncall enables dynamic invocation of machine-level function calls")
 set(CPACK_PACKAGE_VENDOR "dyncall project")
@@ -35,6 +35,11 @@
 # currently we have no use for this, but maybe later..
 #set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/buildsys/cmake/Modules" "${CMAKE_MODULE_PATH}")
 
+option(LANG_CXX "Enable and build C++ tests" ON)
+
+if(LANG_CXX)
+  enable_language(CXX)
+endif()
 
 if(MSVC)
   enable_language(ASM_MASM)
@@ -61,7 +66,7 @@
   set(CMAKE_ASM_COMPILER_ARG1 "${CPPFLAGS} -c")
   enable_language(ASM)
 else()
-  if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
+  if (CMAKE_C_COMPILER_ID STREQUAL "Clang")
   add_definitions("-fPIC")
   # enable gcc as front-end to assembler for .S files
   set(CMAKE_ASM_COMPILER "${CMAKE_C_COMPILER}")
--- a/test/CMakeLists.txt	Sun Sep 11 01:19:27 2016 +0200
+++ b/test/CMakeLists.txt	Sat Sep 17 14:10:53 2016 +0200
@@ -3,15 +3,19 @@
   ${PROJECT_SOURCE_DIR}/dyncall
   ${PROJECT_SOURCE_DIR}/dyncallback
 )
-add_subdirectory(call_suite)
-add_subdirectory(callback_suite)
-add_subdirectory(plain)
+
+if (CMAKE_CXX_COMPILER_WORKS)
 add_subdirectory(plain_c++)
-add_subdirectory(suite)
 add_subdirectory(suite2)
 add_subdirectory(suite3)
 add_subdirectory(suite_floats)
 add_subdirectory(ellipsis)
+endif ()
+
+add_subdirectory(call_suite)
+add_subdirectory(callback_suite)
+add_subdirectory(plain)
+add_subdirectory(suite)
 add_subdirectory(callf)
 add_subdirectory(nm)
 add_subdirectory(resolve_self)
@@ -20,7 +24,7 @@
 add_subdirectory(callback_plain)
 add_subdirectory(sharedlib)
 
-if("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86")
+if("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86" AND CMAKE_CXX_COMPILER_WORKS)
 add_subdirectory(suite_x86win32fast)
 add_subdirectory(suite_x86win32std)
 add_subdirectory(suite2_x86win32fast)