@ -1,4 +1,3 @@
set ( exetargets lokinet )
if ( APPLE )
@ -56,7 +55,6 @@ foreach(exe ${exetargets})
endif ( )
target_link_libraries ( ${ exe } PUBLIC liblokinet )
target_include_directories ( ${ exe } PUBLIC "${PROJECT_SOURCE_DIR}" )
add_log_tag ( ${ exe } )
if ( should_install )
if ( APPLE )
install ( TARGETS ${ exe }
@ -69,6 +67,36 @@ foreach(exe ${exetargets})
endif ( )
endforeach ( )
set ( default_with_gui OFF )
if ( APPLE )
set ( default_with_gui ON )
endif ( )
option ( WITH_GUI "build electron gui from source" ${ default_with_gui } )
if ( WITH_GUI )
find_program ( YARN yarn REQUIRED )
message ( STATUS "Found yarn: ${YARN}" )
if ( NOT GUI_GIT_REPO )
set ( GUI_GIT_REPO "https://github.com/oxen-io/lokinet-gui" )
endif ( )
if ( NOT GUI_GIT_BRANCH )
set ( GUI_GIT_BRANCH "stable" )
endif ( )
if ( NOT YARN_TARGET )
set ( YARN_TARGET pack:raw )
if ( APPLE )
set ( YARN_TARGET macos:raw )
endif ( )
endif ( )
message ( STATUS "will build gui: ${GUI_GIT_REPO} (branch: ${GUI_GIT_BRANCH}) using ${YARN} ${YARN_TARGET}" )
add_custom_target ( lokinet-gui
C O M M A N D r m - r f " $ { P R O J E C T _ B I N A R Y _ D I R } / l o k i n e t - g u i " & & g i t c l o n e " $ { G U I _ G I T _ R E P O } " - b $ { G U I _ G I T _ B R A N C H } " $ { P R O J E C T _ B I N A R Y _ D I R } / l o k i n e t - g u i " & & c d " $ { P R O J E C T _ B I N A R Y _ D I R } / l o k i n e t - g u i " & & $ { Y A R N } i n s t a l l - - f r o z e n - l o c k f i l e & & $ { Y A R N } $ { Y A R N _ T A R G E T } )
else ( )
message ( STATUS "not building gui" )
add_custom_target ( lokinet-gui COMMAND "true" )
endif ( )
if ( APPLE )
option ( MACOS_SYSTEM_EXTENSION
" B u i l d t h e n e t w o r k e x t e n s i o n a s a s y s t e m e x t e n s i o n r a t h e r t h a n a p l u g i n . T h i s m u s t b e O N f o r n o n - a p p s t o r e r e l e a s e b u i l d s , a n d m u s t b e O F F f o r d e v b u i l d s a n d M a c A p p S t o r e d i s t r i b u t i o n b u i l d s "
@ -154,15 +182,6 @@ if(APPLE)
$ < T A R G E T _ B U N D L E _ D I R : l o k i n e t > / C o n t e n t s / e m b e d d e d . p r o v i s i o n p r o f i l e )
endif ( )
add_custom_command ( TARGET lokinet
P O S T _ B U I L D
C O M M A N D $ { C M A K E _ C O M M A N D } - E c o p y _ i f _ d i f f e r e n t $ { P R O J E C T _ S O U R C E _ D I R } / c o n t r i b / b o o t s t r a p / m a i n n e t . s i g n e d
$ < T A R G E T _ B U N D L E _ D I R : l o k i n e t - e x t e n s i o n > / C o n t e n t s / R e s o u r c e s / b o o t s t r a p . s i g n e d
C O M M A N D m k d i r - p $ < T A R G E T _ B U N D L E _ D I R : l o k i n e t > / $ { l o k i n e t _ e x t _ d i r }
C O M M A N D c p - a $ < T A R G E T _ B U N D L E _ D I R : l o k i n e t - e x t e n s i o n > $ < T A R G E T _ B U N D L E _ D I R : l o k i n e t > / $ { l o k i n e t _ e x t _ d i r }
$ { p o s t _ b u i l d _ p p }
)
set_target_properties ( lokinet
P R O P E R T I E S
O U T P U T _ N A M E L o k i n e t
@ -178,15 +197,29 @@ if(APPLE)
M A C O S X _ B U N D L E _ C O P Y R I G H T " © 2 0 2 2 , T h e O x e n P r o j e c t "
R U N T I M E _ O U T P U T _ D I R E C T O R Y " $ { P R O J E C T _ B I N A R Y _ D I R } "
)
set ( copy_gui )
if ( BUILD_GUI )
set ( copy_gui COMMAND ${ CMAKE_COMMAND } -E copy_directory ${ PROJECT_BINARY_DIR } /lokinet-gui/release/mac/lokinet-gui.app $< TARGET_BUNDLE_DIR:lokinet > )
endif ( )
add_custom_target ( assemble
D E P E N D S l o k i n e t l o k i n e t - e x t e n s i o n l o k i n e t - g u i
$ { c o p y _ g u i }
C O M M A N D $ { C M A K E _ C O M M A N D } - E c o p y _ i f _ d i f f e r e n t $ { P R O J E C T _ S O U R C E _ D I R } / c o n t r i b / b o o t s t r a p / m a i n n e t . s i g n e d
$ < T A R G E T _ B U N D L E _ D I R : l o k i n e t - e x t e n s i o n > / C o n t e n t s / R e s o u r c e s / b o o t s t r a p . s i g n e d
C O M M A N D m k d i r - p $ < T A R G E T _ B U N D L E _ D I R : l o k i n e t > / $ { l o k i n e t _ e x t _ d i r }
C O M M A N D c p - a $ < T A R G E T _ B U N D L E _ D I R : l o k i n e t - e x t e n s i o n > $ < T A R G E T _ B U N D L E _ D I R : l o k i n e t > / $ { l o k i n e t _ e x t _ d i r }
$ { p o s t _ b u i l d _ p p } )
if ( NOT CODESIGN )
message ( STATUS "codesigning disabled" )
add_custom_target (
s i g n
D E P E N D S l o k i n e t l o k i n e t - e x t e n s i o n
D E P E N D S as s e m b l e
C O M M A N D " t r u e " )
elseif ( CODESIGN )
set ( SIGN_TARGET "${PROJECT_BINARY_DIR}/lokinet.app" )
set ( SIGN_TARGET "${PROJECT_BINARY_DIR}/ L okinet.app")
if ( MACOS_SYSTEM_EXTENSION )
set ( LOKINET_ENTITLEMENTS_TYPE sysext )
else ( )
@ -198,7 +231,7 @@ if(APPLE)
@ O N L Y )
add_custom_target (
s i g n
D E P E N D S " $ { P R O J E C T _ B I N A R Y _ D I R } / s i g n . s h " lo k i n e t l o k i n e t - e x t e n s i o n
D E P E N D S " $ { P R O J E C T _ B I N A R Y _ D I R } / s i g n . s h " as s e m b l e
C O M M A N D " $ { P R O J E C T _ B I N A R Y _ D I R } / s i g n . s h "
)