@@ -4,7 +4,8 @@ include(tools/arch.cmake)
44include (tools/os.cmake )
55include (tools/subdirs.cmake )
66
7- project (fibos)
7+ set (appname fibos)
8+ project (${appname} )
89
910find_program (CCACHE_FOUND ccache )
1011if (CCACHE_FOUND)
@@ -13,10 +14,11 @@ if(CCACHE_FOUND)
1314endif (CCACHE_FOUND )
1415
1516file (GLOB_RECURSE src_list "src/*.c*" )
16- add_executable (fibos ${src_list} )
17+ add_executable (${appname} ${src_list} )
1718
1819set (BIN_DIR ${PROJECT_SOURCE_DIR} /bin/${OS} _${ARCH} _${BUILD_TYPE} )
1920set (FIBJS_DIR ${PROJECT_SOURCE_DIR} /fibjs/bin/${OS} _${ARCH} _${BUILD_TYPE} )
21+ set (EOS_DIR ${PROJECT_SOURCE_DIR} /eos)
2022set (EXECUTABLE_OUTPUT_PATH ${BIN_DIR} )
2123
2224include (CheckIncludeFiles )
@@ -33,23 +35,23 @@ check_c_source_compiles("void posix_spawnp();
3335 __asm__(\" .symver posix_spawnp,posix_spawnp@GLIBC_2.2\" );
3436 void main(void){posix_spawnp();}" HAVE_GLIB_C_22_H )
3537
36- set (flags "-fsigned-char -fmessage-length=0 -fdata-sections -ffunction-sections -fno-exceptions - D_FILE_OFFSET_BITS=64" )
37- set (ccflags "-std=c++11 " )
38+ set (flags "-fsigned-char -fmessage-length=0 -fdata-sections -ffunction-sections -D_FILE_OFFSET_BITS=64" )
39+ set (ccflags "-std=c++14 " )
3840set (link_flags " " )
3941
4042if (${OS} STREQUAL "Darwin" )
4143 set (link_flags "${link_flags} -mmacosx-version-min=10.9 -framework Carbon -framework IOKit" )
4244 set (flags "${flags} -mmacosx-version-min=10.9" )
43- target_link_libraries (fibos dl iconv stdc++ )
45+ target_link_libraries (${appname} dl iconv stdc++ )
4446endif ()
4547
4648if (${OS} STREQUAL "Linux" )
47- target_link_libraries (fibos dl rt )
49+ target_link_libraries (${appname} dl rt )
4850endif ()
4951
5052if (${OS} STREQUAL "FreeBSD" )
5153 find_library (execinfo execinfo "/usr/local/lib" "/usr/lib" )
52- target_link_libraries (fibos ${execinfo} )
54+ target_link_libraries (${appname} ${execinfo} )
5355endif ()
5456
5557if (${BUILD_TYPE} STREQUAL "release" )
@@ -84,12 +86,48 @@ set(CMAKE_CXX_FLAGS "${flags} ${ccflags}")
8486
8587include_directories ("${PROJECT_SOURCE_DIR} /include" "${PROJECT_SOURCE_DIR} /fibjs/fibjs/include" "${PROJECT_SOURCE_DIR} /fibjs/vender" "${PROJECT_SOURCE_DIR} /fibjs/vender/v8" "${PROJECT_SOURCE_DIR} /fibjs/vender/v8/include" "${PROJECT_SOURCE_DIR} /fibjs/vender/mbedtls" "${PROJECT_SOURCE_DIR} /fibjs/vender/zlib/include" "${CMAKE_CURRENT_BINARY_DIR} " )
8688
89+ MACRO (EOSLIBS dir )
90+ file (GLOB eos_libs "${dir} /*" )
91+ foreach (eos_lib ${eos_libs} )
92+ if (IS_DIRECTORY "${eos_lib} /include" )
93+ include_directories ("${eos_lib} /include" )
94+ endif ()
95+ endforeach ()
96+ ENDMACRO ()
97+
98+ EOSLIBS ("${EOS_DIR} /plugins" )
99+ EOSLIBS ("${EOS_DIR} /libraries" )
100+ EOSLIBS ("${EOS_DIR} /build/libraries" )
101+ include_directories ("${EOS_DIR} /libraries/softfloat/source/include" )
102+
103+ if (APPLE )
104+ set (OPENSSL_ROOT_DIR "/usr/local/opt/openssl" )
105+ elseif (UNIX AND NOT APPLE )
106+ set (OPENSSL_ROOT_DIR "/usr/include/openssl" )
107+ else ()
108+ message (FATAL_ERROR "openssl not found and don't know where to look, please specify OPENSSL_ROOT_DIR" )
109+ endif ()
110+
111+ include_directories ("${OPENSSL_ROOT_DIR} /include" )
112+
113+ file (GLOB_RECURSE eos_alist "eos/*.a" )
114+ target_link_libraries (${appname} ${eos_alist} )
115+
116+ find_package (LLVM 4.0 REQUIRED CONFIG )
117+ llvm_map_components_to_libnames (LLVM_LIBS support core passes mcjit native DebugInfoDWARF )
118+ target_link_libraries (${appname} ${LLVM_LIBS} )
119+
120+ file (GLOB openssl_alist "${OPENSSL_ROOT_DIR} /lib/*.a" )
121+ target_link_libraries (${appname} ${openssl_alist} )
122+
123+ target_link_libraries (${appname} boost_iostreams boost_date_time boost_chrono boost_program_options boost_filesystem boost_system secp256k1 )
124+
87125set (libs fibjs expat gumbo gd tiff jpeg png webp zlib leveldb snappy ev pcre sqlite mongo umysql uuid exif mbedtls v8 zmq unzip editline exlib)
88126
89127foreach (lib ${libs} )
90- target_link_libraries (fibos "${FIBJS_DIR} /lib${lib} .a" )
128+ target_link_libraries (${appname} "${FIBJS_DIR} /lib${lib} .a" )
91129endforeach ()
92130
93- target_link_libraries (fibos pthread )
131+ target_link_libraries (${appname} pthread boost_system )
94132
95- set_target_properties (fibos PROPERTIES LINK_FLAGS ${link_flags} )
133+ set_target_properties (${appname} PROPERTIES LINK_FLAGS ${link_flags} )
0 commit comments