[575013] Fix problems when compiling in macos
Add cmake settings to enable specific solutions for some cases,
applicable to all archs
Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=575013
Signed-off-by: Jose Cabral <cabralcochi@gmail.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index dad976d..66c56b6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -18,6 +18,15 @@
PROJECT(FORTE)
+set(FORTE_USE_STD_11 OFF CACHE BOOL "Enable c++11 for the project")
+mark_as_advanced(FORTE_USE_STD_11)
+
+if (FORTE_USE_STD_11)
+ set(CMAKE_CXX_STANDARD 11)
+ set(CMAKE_CXX_STANDARD_REQUIRED ON)
+endif()
+
+
if(NOT (${CMAKE_HOST_SYSTEM_NAME} STREQUAL ${CMAKE_SYSTEM_NAME}))
MESSAGE("Cross compiling")
SET(CMAKE_CXX_USE_RESPONSE_FILE_FOR_OBJECTS 1)
@@ -34,7 +43,12 @@
INCLUDE(${FORTE_BUILDSUPPORT_DIRECTORY}/forte.cmake)
INCLUDE(${FORTE_BUILDSUPPORT_DIRECTORY}/check_compiler_features.cmake)
-TEST_NEEDED_FORTE_COMPILER_FEATURES() #Checl for compiler features and either apply fixes or error messages if not supported
+set(FORTE_TEST_NEEDED_COMPILER_FEATURES ON CACHE BOOL "Check for compiler features and either apply fixes or error messages if not supported")
+mark_as_advanced(FORTE_BUILD_EXECUTABLE)
+
+if (FORTE_TEST_NEEDED_COMPILER_FEATURES)
+ TEST_NEEDED_FORTE_COMPILER_FEATURES()
+endif()
forte_add_definition("-DFORTE_COMPILATION") #Allow to tell external modules/middleware that forte is being compiled, so special defines can be added
diff --git a/src/arch/macos/CMakeLists.txt b/src/arch/macos/CMakeLists.txt
index be90412..6f3641d 100644
--- a/src/arch/macos/CMakeLists.txt
+++ b/src/arch/macos/CMakeLists.txt
@@ -25,7 +25,7 @@
forte_add_sourcefile_hcpp(../posix/forte_thread forte_sync forte_sem)
forte_add_sourcefile_cpp(../genforte_printer.cpp)
forte_add_sourcefile_h(../forte_architecture_time.h)
- forte_add_sourcefile_cpp(../genforte_realFunctions.cpp ../posix/forte_architecture_time.cpp)
+ forte_add_sourcefile_cpp(../genforte_realFunctions.cpp ../posix/forte_architecture_time.cpp ../utils/timespec_utils.cpp)
forte_add_to_executable_cpp(../posix/main)
diff --git a/src/arch/macos/forte_sem.cpp b/src/arch/macos/forte_sem.cpp
index 1ee913d..3e3a199 100644
--- a/src/arch/macos/forte_sem.cpp
+++ b/src/arch/macos/forte_sem.cpp
@@ -50,7 +50,7 @@
bool CPThreadSemaphore::timedWait(const TForteUInt64 paRelativeTimeout){
struct timespec now = { 0, 0 };
clock_gettime(CLOCK_MONOTONIC, &now);
- dispatch_time_t timeout = dispatch_walltime(&now, paRelativeTimeout)
+ dispatch_time_t timeout = dispatch_walltime(&now, paRelativeTimeout);
return (0 == dispatch_semaphore_wait(mSemaphore, timeout));
}