29e77529b3
This library does not depend on any of the functions defined by POSIX.1b [1]. Moreover, it made linking to fail on some MinGW flavours where librt might not be available. [1]: https://docs.oracle.com/cd/E86824_01/html/E54772/librt-3lib.html git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9598 30fe4595-0a0c-4342-8851-515496e4dcbd Former-commit-id: 89843ea922bbe14919a9a2ea9bc4a138ce31c90d Former-commit-id: aa56dcdf148c579e63c2654c036c8147fb18ebde
72 lines
2.4 KiB
Text
72 lines
2.4 KiB
Text
cmake_minimum_required(VERSION 2.8.8)
|
|
|
|
project(FreeSOLID)
|
|
|
|
set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/CMakeModules;${CMAKE_MODULE_PATH}")
|
|
|
|
set(CMAKE_DEBUG_POSTFIX "_d")
|
|
|
|
set(OUTPUT_BINDIR ${PROJECT_BINARY_DIR}/bin)
|
|
make_directory(${OUTPUT_BINDIR})
|
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${OUTPUT_BINDIR})
|
|
|
|
|
|
set(OUTPUT_LIBDIR ${PROJECT_BINARY_DIR}/lib)
|
|
make_directory(${OUTPUT_LIBDIR})
|
|
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${OUTPUT_LIBDIR})
|
|
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${OUTPUT_LIBDIR})
|
|
|
|
|
|
# Dynamic vs Static Linking
|
|
option(DYNAMIC_SOLID "Set to ON to build FreeSOLID for dynamic linking. Use OFF for static." ON)
|
|
|
|
if(NOT DYNAMIC_SOLID)
|
|
add_definitions(-DSOLID_STATIC)
|
|
endif(NOT DYNAMIC_SOLID)
|
|
|
|
include_directories(
|
|
${PROJECT_SOURCE_DIR}/include
|
|
)
|
|
|
|
if(MSVC)
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /D_SCL_SECURE_NO_WARNINGS /D_CRT_SECURE_NO_WARNINGS")
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /D_SCL_SECURE_NO_WARNINGS /D_CRT_SECURE_NO_WARNINGS")
|
|
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /GS-")
|
|
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /GS-")
|
|
set(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO "/INCREMENTAL:NO")
|
|
set(CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO "/INCREMENTAL:NO")
|
|
if(CMAKE_CL_64)
|
|
else(CMAKE_CL_64)
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /arch:SSE")
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /arch:SSE")
|
|
endif(CMAKE_CL_64)
|
|
endif(MSVC)
|
|
|
|
if(UNIX)
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -ffast-math -msse")
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -ffast-math -msse")
|
|
if (DYNAMIC_SOLID)
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
|
|
endif(DYNAMIC_SOLID)
|
|
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -funroll-loops")
|
|
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -DNDEBUG")
|
|
set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -DNDEBUG")
|
|
if(GNUC)
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfpmath=sse")
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpmath=sse")
|
|
endif(GNUC)
|
|
endif(UNIX)
|
|
|
|
if(UNIX AND NOT WIN32 AND NOT APPLE)
|
|
if(CMAKE_SIZEOF_VOID_P MATCHES "8")
|
|
set(LIB_POSTFIX "64" CACHE STRING "suffix for 32/64 dir placement")
|
|
mark_as_advanced(LIB_POSTFIX)
|
|
endif(CMAKE_SIZEOF_VOID_P MATCHES "8")
|
|
endif(UNIX AND NOT WIN32 AND NOT APPLE)
|
|
|
|
add_subdirectory(libmoto)
|
|
add_subdirectory(libbroad)
|
|
add_subdirectory(libsolid)
|
|
add_subdirectory(sample)
|
|
#add_subdirectory(doc)
|