Skip to content

Commit 5f6e4d8

Browse files
authored
Merge pull request #16 from bitshares/editline-build
Build editline
2 parents b8e5640 + 0242a05 commit 5f6e4d8

File tree

2 files changed

+51
-66
lines changed

2 files changed

+51
-66
lines changed

CMakeLists.txt

+51-16
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,54 @@ else ( MSVC )
102102
endif ( MSVC )
103103
# End configure secp256k1-zkp
104104

105+
# Configure editline
106+
if ( MSVC )
107+
# autoconf won't work here, hard code the defines
108+
set( EDITLINE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/vendor/editline" )
109+
110+
file( GLOB EDITLINE_SOURCES "${EDITLINE_DIR}/src/editline.c" )
111+
add_library( editline ${EDITLINE_SOURCES} )
112+
113+
target_include_directories( editline PRIVATE "${EDITLINE_DIR}" PUBLIC "${EDITLINE_DIR}/include" )
114+
115+
set_target_properties( editline PROPERTIES COMPILE_DEFINITIONS LINKER_LANGUAGE C )
116+
else ( MSVC )
117+
include(ExternalProject)
118+
if ( MINGW )
119+
ExternalProject_Add( project_editline
120+
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/vendor/editline
121+
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/vendor/editline
122+
CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/vendor/editline/configure --prefix=${CMAKE_CURRENT_BINARY_DIR}/vendor/editline --host=x86_64-w64-mingw32
123+
BUILD_COMMAND make
124+
INSTALL_COMMAND true
125+
BUILD_BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/vendor/editline/src/project_editline-build/.libs/libeditline.a
126+
)
127+
else ( MINGW )
128+
ExternalProject_Add( project_editline
129+
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/vendor/editline
130+
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/vendor/editline
131+
CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/vendor/editline/configure --prefix=${CMAKE_CURRENT_BINARY_DIR}/vendor/editline
132+
BUILD_COMMAND make
133+
INSTALL_COMMAND true
134+
BUILD_BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/vendor/editline/src/project_editline-build/.libs/libeditline.a
135+
)
136+
endif ( MINGW )
137+
ExternalProject_Add_Step(project_editline autogen
138+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/vendor/editline
139+
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/vendor/editline/autogen.sh
140+
DEPENDERS configure
141+
)
142+
143+
ExternalProject_Get_Property(project_editline binary_dir)
144+
145+
add_library(editline STATIC IMPORTED)
146+
set_property(TARGET editline PROPERTY IMPORTED_LOCATION ${binary_dir}/src/.libs/libeditline${CMAKE_STATIC_LIBRARY_SUFFIX})
147+
set_property(TARGET editline PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/vendor/editline/include)
148+
add_dependencies(editline project_editline)
149+
install( FILES ${binary_dir}/src/.libs/libeditline${CMAKE_STATIC_LIBRARY_SUFFIX} DESTINATION lib/cryptonomex )
150+
endif ( MSVC )
151+
# End configure editline
152+
105153
IF( WIN32 )
106154
MESSAGE(STATUS "Configuring fc to build on Win32")
107155

@@ -252,20 +300,8 @@ setup_library( fc SOURCES ${sources} LIBRARY_TYPE STATIC )
252300
install( DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include/" DESTINATION include )
253301

254302
# begin editline stuff
255-
#find_package(Curses)
256-
set(EDITLINE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/vendor/editline" )
257-
find_package(Editline)
258-
259-
file(GLOB HEADERS "include/bts/cli/*.hpp")
260-
261-
if (EDITLINE_FOUND)
262-
target_compile_definitions (fc PRIVATE HAVE_EDITLINE)
263-
set(editline_libraries ${Editline_LIBRARY})
264-
#if (CURSES_FOUND)
265-
# list(APPEND editline_libraries ${CURSES_LIBRARY})
266-
#endif()
267-
set(editline_includes ${Editline_INCLUDE_DIR})
268-
endif()
303+
target_compile_definitions (fc PRIVATE HAVE_EDITLINE)
304+
set(editline_libraries editline)
269305
if(WIN32)
270306
target_compile_definitions( fc PRIVATE _CRT_NONSTDC_NO_DEPRECATE )
271307
endif(WIN32)
@@ -363,7 +399,6 @@ target_include_directories(fc
363399
${OPENSSL_INCLUDE_DIR}
364400
"vendor/diff-match-patch-cpp-stl"
365401
${CMAKE_CURRENT_SOURCE_DIR}/vendor/websocketpp
366-
"${editline_includes}"
367402

368403
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
369404
${CMAKE_CURRENT_SOURCE_DIR}/vendor/boost_1.51/include
@@ -374,7 +409,7 @@ target_include_directories(fc
374409
IF(NOT WIN32)
375410
set(LINK_USR_LOCAL_LIB -L/usr/local/lib)
376411
ENDIF()
377-
target_link_libraries( fc PUBLIC ${LINK_USR_LOCAL_LIB} ${Boost_LIBRARIES} ${OPENSSL_LIBRARIES} ${ZLIB_LIBRARIES} ${BZIP2_LIBRARIES} ${PLATFORM_SPECIFIC_LIBS} ${RPCRT4} ${CMAKE_DL_LIBS} ${rt_library} ${readline_libraries} ${ECC_LIB} )
412+
target_link_libraries( fc PUBLIC ${LINK_USR_LOCAL_LIB} ${Boost_LIBRARIES} ${OPENSSL_LIBRARIES} ${ZLIB_LIBRARIES} ${BZIP2_LIBRARIES} ${PLATFORM_SPECIFIC_LIBS} ${RPCRT4} ${CMAKE_DL_LIBS} ${rt_library} ${editline_libraries} ${ECC_LIB} )
378413

379414
if(MSVC)
380415
set_source_files_properties( src/network/http/websocket.cpp PROPERTIES COMPILE_FLAGS "/bigobj" )

CMakeModules/FindEditline.cmake

-50
This file was deleted.

0 commit comments

Comments
 (0)